INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
Hi! In hierdie handleiding sal ons probeer om USART -kommunikasie tussen STM32F4 ARM MCU en Python tot stand te bring (dit kan deur enige ander taal vervang word). So, kom ons begin:)
Stap 1: Vereistes vir sagteware en hardeware
Wat hardeware betref, benodig u:
- STM32F4 Discovery Board (of enige ander STM32 -bord)
- USB na TTL omskakelaar
Wat sagteware betref:
- STM32CubeMX
- Keil uVision5
- Python met seriële biblioteek geïnstalleer
Stap 2: STM32CubeMX -opset
Laat ons eers verstaan wat ons wil doen. Ons wil data vanaf Python via USART na Perdon stuur en kyk of ons die korrekte data het en die skakelaar verander. Ons moet dus USART en Led aktiveer.
-
Aktiveer USART2 vanaf die oortjie Verbindings.
- Verander die modus na Asynchoronous
- Baud tempo tot 9600 Bits/s
- Woordlengte tot 8 bits sonder pariteit
- Geen bietjie gelykheid nie
- Voeg vanuit die DMA -instellings USART2_RX in die spesifieke modus
- Aktiveer die globale onderbreking van USART2 vanaf NVIC -instellings
- Aktiveer LED deur op PD12 te klik
Genereer dan kode:)
Stap 3: Keil sagteware -ontwikkeling
#insluit
#insluit
Hierdie biblioteke sal nodig wees in stringbewerkings en om Booleaanse veranderlike te definieer.
/ *GEBRUIKERSKODE BEGIN 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * GEBRUIKERSKODE EINDE 2 */
Hier word UART ontvang met DMA begin.
/ *GEBRUIKERSKODE BEGIN 4 */leegte HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Voorkom ongebruikte argument (e) samestellingswaarskuwing */ONGEBRUIK (huart); / * OPMERKING: Hierdie funksie moet nie gewysig word nie, as die terugbel nodig is, kan die HAL_UART_RxCpltCallback in die gebruikerslêer geïmplementeer word */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indeks _ ++; } anders {index_ = 0; klaar = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * GEBRUIKERSKODE EINDE 4 * /
Dit is ISR wat geaktiveer word as ons een greep karakter kry. So. ons kry die byte en skryf dit aan die data_full wat die volledige data bevat totdat ons '\ n' kry. As ons '\ n' kry, maak ons klaar vlag 1 en in terwyl lus:
terwyl (1) { / * GEBRUIKERSKODE EINDE TERWYL * / as (klaar) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); klaar = 0; } anders {_NOP (); } / * GEBRUIKERSKODE BEGIN 3 * /}
As die voltooide vlag HOOG is, vergelyk ons die inhoud van die volledige ontvangde data en die data wat ons verlang, en as dit gelyk is, skakel ons gelei. Daarna maak ons die voltooide vlag skoon en wag ons vir nuwe data en maak ons ook die data_full skikking skoon om nie na die skikking oor te skryf nie.
Stap 4: Python sagteware -ontwikkeling
Dus, hier wil ons ons nommer met '/n' aan die einde stuur, want Keil -sagteware sal dit moet sien om die einde te ken.
invoer reeks
ser = serial. Serial ('COM17') #kontroleer die poort op u toestel via Toestelbestuurder
ser.write (b'24 / n ')
U moet sien dat die LED elke keer as u '24 / n 'stuur, wissel. As u iets anders stuur, moet dit dit nie beïnvloed nie.
Stap 5: Gevolgtrekking
Ons het die einde van die tutoriaal bereik. as u 'n probleem of vraag het, moet asseblief nie huiwer om dit te vra nie. Ek sal probeer om soveel as moontlik te help. Baie dankie:)
Aanbeveel:
Die opstel van FreeRTOS van nuuts af op STM32F407 Discovery Kit: 14 stappe
FreeRTOS vanaf nul instel op STM32F407 Discovery Kit: FreeRTOS kies as 'n intydse bedryfstelsel vir u ingebedde projek is 'n uitstekende keuse. Die FreeRTOS is werklik gratis en bied baie eenvoudige en effektiewe RTOS -funksies. Maar dit kan moeilik wees om gratis RTOS op te stel, of ek kan sê
Basiese selfoon met behulp van STM32F407 Discovery Kit en GSM A6 -module: 14 stappe (met foto's)
Basiese selfoon met behulp van STM32F407 Discovery Kit en GSM A6 -module: wou u ooit 'n oulike ingeboude projek skep ?. Indien wel, wat van die bou van een van die gewildste en almal se gunsteling gadgets, naamlik selfoon !!!. In hierdie instruksies sal ek u lei hoe u 'n basiese selfoon kan bou met behulp van die STM
Servomotorbeheer met STM32F4 ARM MCU: 4 stappe
Servomotorbeheer met STM32F4 ARM MCU: Hallo weer vriende :) Dus, in hierdie projek beheer ons 'n servomotor met STM32F4 ARM MCU. In my geval sal ek die ontdekkingsbord gebruik, maar as u die kern van die probleem verstaan, kan u dit op elke MCU toepas. So. laat ons begin:)
UCL -Embedded -Relay Communication Box: 5 stappe
UCL -Embedded -Relay Communication Box: Die belangrikste idee van hierdie projek is om 'n stel van twee relais en 'n DHT11 -sensor met 'n Blynk -app te beheer met behulp van WiFi -kommunikasie en 'n Nodmcu esp8266 mikrobeheerder
Snelheidsbeheer van DC -motor met behulp van PID -algoritme (STM32F4): 8 stappe (met foto's)
Snelheidsbeheer van DC -motor met behulp van PID -algoritme (STM32F4): hallo almal, dit is 'n ander projek. Hierdie keer is dit STM32F407 as MC. Dit is 'n einde van die middel semester projek. Hoop jy hou daarvan. Dit verg baie konsepte en teorie, daarom gaan ons eers daarop in. Met die koms van rekenaars en die