Transmisia unor date pe SPI de la STM32F103C6 la ESP32
Acest proiect realizează interfațarea între două microcontrolere,STM32F103C6 și ESP32, pentru a transfera date utilizând Protocolul de Interfață Serială (SPI). Datele sunt preluate de la un potentiometru
conectat la STM32F103C6 și sunt trimise către ESP32, care mai departe poate folosi informațiile pentru controlul altor dispozitive. STM32F103C6 va acționa ca dispozitiv master SPI, iar ESP32 ca dispozitiv slave.
Acest proiect demonstrează un mod eficient de a conecta și de a comunica între două microcontrolere, STM32F103C6 și ESP32, folosind protocolul SPI. Rezultatele obținute pot servi drept bază pentru dezvoltarea deaplicații mai complexe, ce necesită transfer rapid și fiabil de date.
Etape de Implementare
- Configurarea Hardware-ului:
- Conectarea potentiometrului la intrarea analogică a STM32F103C6.
- Conectarea pinii SPI între STM32 și ESP32. Asigurați-vă că există o conexiune stabilă între MOSI, MISO, SCK și SS (Chip Select).
- ESP32 – STM32
- D23(MOSI) – B5 (MOSI1)
- D19 (MISO) – B4 (MISO1)
- D18 (SCK) – B3 (SCK1)
- D5 (CS) – A15 (NSS1)
- Configurarea STM32F103C6:
- Programarea STM32 pentru a citi valorile de la potentiometru folosind ADC (MX_ADC2_Init();) (Convertor Analog-Digital), un ADC foarte performant care oferă valori pe 16 biți la o viteză considerabilă.
- Configurarea interfeței SPI ( MX_SPI1_Init();) pentru a trimite datele către ESP32.
- Crearea unei funcții de transmisie SPI care trimite datele de la ADC către ESP32 (vezi funția main de mai jos).
- Configurarea ESP32:
- Configurarea interfeței SPI pentru a primi datele de la STM32 folosind lib-ul ESP32SPISlave.
- Programarea pentru a citi datele primite și pentru a le procesa sau afișa (vezi funcția loop).
- Utilizarea unui serial monitor pentru a verifica datele primite de la STM32 (vezi Serial).
- Validare și Testare:
- Testarea transmisiei SPI pentru a verifica dacă datele sunt transmise corect.
- Validarea datelor primite pe ESP32 pentru a asigura acuratețea acestora.
- Testarea sistemului în diverse condiții pentru a verifica stabilitatea și fiabilitatea
Componente
- https://www.olx.ro/d/oferta/esp32-wifi-bluetooth-development-board-micro-usb-dual-core-30-pini-IDgQpAY.html?bs=olx_pro_listing
- Placa Electronica de Dezvoltare STM32F103C8T6 ARM STM 32
- ST-LINK V2 Simulator Download Programmer STM32F103C8T6 ARM STM32 Minimum System Development Board STM32F401 STM32F411
Schema electronică/sistem

STM32_SPI_ESP32_SPI

Cod de test
Codul care rulează pe STM32 (Master)
Codul care rulează pe ESP32 (Slave)


Documentație proiect
- https://www.electronicshub.org/how-to-use-spi-in-stm32f103c8t6/
- https://blog.automatic-house.ro/2023/09/26/mini-proiect-52-comunicatia-spi-intre-doua-placi-esp32-trimiterea-valorii-de-la-potentiometru/
- https://github.com/weewStack/STM32F1-Tutorial
- https://community.st.com/t5/stm32-mcus-products/why-is-my-adc-only-showing-zero-as-an-output-while-simulating/m-p/598332#M224978
- https://esp32.com/viewtopic.php?t=2005
Afiliere eMag
Linkurile de la secțiunea „Componente” conțin adresa mea de afiliere la eMag.ro, iar dacă cumperi folosind aceste linkuri vei susține blogul meu, iar 10 % din donații se vor direcționa pentru fundația dăruiește viată. Mulțumesc !
Mulțumesc pentru atenție!
Pentru întrebări și/sau consultanță tehnică vă stau la dispoziție pe blog mai jos în secțiunea de comentarii sau pe email simedruflorin@automatic-house.ro.
O zi plăcută tuturor !