Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02
Hei! I denne opplæringen vil vi prøve å etablere USART -kommunikasjon mellom STM32F4 ARM MCU og Python (den kan erstattes av et hvilket som helst annet språk). Så la oss komme i gang:)
Trinn 1: Krav til programvare og maskinvare
Når det gjelder maskinvare trenger du:
- STM32F4 Discovery Board (eller et annet STM32 -kort)
- USB til TTL -omformer
Når det gjelder programvare:
- STM32CubeMX
- Keil uVision5
- Python med seriell bibliotek installert
Trinn 2: STM32CubeMX -konfigurasjon
La oss først forstå hva vi vil gjøre. Vi ønsker å overføre data til bord fra Python over USART og sjekke om vi har riktige data og veksellys. Så vi må aktivere USART og Led.
-
Aktiver USART2 fra kategorien Tilkobling.
- Bytt modus til asynkron
- Overføringshastighet til 9600 bits/s
- Ordlengde til 8 bits uten paritet
- Ingen likhet
- Fra DMA -innstillingene legger du til USART2_RX i cicular -modus
- Fra NVIC -innstillinger aktiverer USART2 global avbrudd
- Aktiver LED ved å klikke på PD12
Generer deretter kode:)
Trinn 3: Programvareutvikling av Keil
#inkludere
#inkludere
Disse bibliotekene vil være nødvendige i strengoperasjoner og for å definere boolsk variabel.
/ *USER CODE BEGIN 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * BRUKERKODE SLUT 2 */
Her startet UART -mottak med DMA.
/ *BRUKERKODE BEGYNNER 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Forhindre ubrukte argument (er) om samlingsvarsel */UBRUKT (huart); / * MERK: Denne funksjonen bør ikke endres. Når tilbakeringing er nødvendig, kan HAL_UART_RxCpltCallback implementeres i brukerfilen */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indeks _ ++; } annet {index_ = 0; ferdig = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * BRUKERKODE SLUTT 4 * /
Dette er ISR som aktiveres når vi får en byte karakter. Så. vi får den byten og skriver den til data_full som inneholder alle mottatte data til vi får '\ n'. Når vi får '\ n' lager vi ferdig flagg 1 og i mens loop:
mens (1) { / * BRUKERKODE END WHILE * / if (ferdig) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); ferdig = 0; } annet {_NOP (); } / * BRUKERKODE BEGYNNER 3 * /}
Hvis ferdig flagg er HØY, sammenligner vi innholdet i full mottatte data og data vi ønsker, og hvis de er like, bytter vi led. Etter det fjerner vi ferdig flagg og venter på nye data og sletter også data_full -arrayet for ikke å overskrive til matrisen.
Trinn 4: Python -programvareutvikling
Så her vil vi sende nummeret vårt med '/n' på slutten, fordi Keil -programvaren må se det for å vite slutten.
importer serie
ser = serial. Serial ('COM17') #sjekk porten på enheten din fra Enhetsbehandling
ser.write (b'24 / n ')
Du bør se at LED -lampen veksler hver gang du sender '24 / n '. Hvis du sender noe annet, bør det ikke påvirke det.
Trinn 5: Konklusjon
Vi har nådd slutten av opplæringen. hvis du har problemer eller spørsmål, ikke nøl med å spørre. Jeg skal prøve å hjelpe så mye jeg kan. Tusen takk:)
Anbefalt:
Sette opp FreeRTOS From Scratch på STM32F407 Discovery Kit: 14 trinn
Konfigurere FreeRTOS fra bunnen av på STM32F407 Discovery Kit: Å velge FreeRTOS som et sanntidsoperativsystem for ditt innebygde prosjekt er et godt valg. FreeRTOS er virkelig gratis og har mange enkle og effektive RTOS -funksjoner. Men det kan være vanskelig å sette opp freeRTOS fra bunnen av, eller jeg kan si to ganger
Servomotorstyring med STM32F4 ARM MCU: 4 trinn
Servomotorstyring med STM32F4 ARM MCU: Hei igjen venner :) Så i dette prosjektet vil vi kontrollere en servomotor med STM32F4 ARM MCU. I mitt tilfelle vil jeg bruke discovery board, men hvis du forstår kjernen i problemet, kan du bruke det for hver MCU. Så. la oss komme i gang:)
ESP8266 og Python Communication For Noobs: 6 trinn
ESP8266 og Python Communication For Noobs: Denne guiden lar deg hente data fra ESP8266 og kontrollere den over python uten AT -kommandoer. For nybegynnere er de fleste guidene om bruk av ESP8266 vanskelig, fordi de vil at du skal blinke “PÅ KOMMANDOER”Til chip, som er: Unødvendig avfall
UCL -Embedded -Relay Communication Box: 5 trinn
UCL -Embedded -Relay Communication Box: Hovedideen om dette prosjektet er å kontrollere et sett med to reléer og en DHT11 -sensor med en Blynk -app ved hjelp av WiFi -kommunikasjon og en Nodmcu esp8266 mikrokontroller
Hastighetskontroll av likestrømsmotor ved bruk av PID -algoritme (STM32F4): 8 trinn (med bilder)
Hastighetskontroll av likestrømsmotor ved bruk av PID -algoritme (STM32F4): hei alle sammen. Dette er tahir ul haq med et annet prosjekt. Denne gangen er det STM32F407 som MC. Dette er et prosjekt på slutten av midten av semesteret. Håper du liker det. Det krever mange begreper og teori, så vi går inn på det først. Med bruk av datamaskiner og