Turinys:
- 1 žingsnis: Programinės įrangos ir aparatūros reikalavimai
- 2 veiksmas: „STM32CubeMX“konfigūravimas
- 3 žingsnis: „Keil“programinės įrangos kūrimas
- 4 žingsnis: „Python“programinės įrangos kūrimas
- 5 žingsnis: Išvada
Video: STM32F4 atradimų lenta ir „Python USART“ryšys (STM32CubeMx): 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Sveiki! Šioje pamokoje mes stengsimės užmegzti USART ryšį tarp STM32F4 ARM MCU ir „Python“(jį galima pakeisti bet kuria kita kalba). Taigi, pradėkime:)
1 žingsnis: Programinės įrangos ir aparatūros reikalavimai
Kalbant apie aparatūrą, jums reikia:
- STM32F4 atradimų lenta (arba bet kuri kita STM32 plokštė)
- USB į TTL keitiklis
Kalbant apie programinę įrangą:
- STM32CubeMX
- Keil uVision5
- „Python“su įdiegta serijine biblioteka
2 veiksmas: „STM32CubeMX“konfigūravimas
Pirmiausia supraskime, ką norime padaryti. Mes norime perduoti duomenis į lentą iš „Python“per USART ir patikrinti, ar turime teisingus duomenis ir perjungimo diodus. Taigi, mums reikia įjungti USART ir Led.
-
Įjunkite USART2 skirtuke „Ryšiai“.
- Pakeiskite režimą į asinchroninį
- Spartos greitis iki 9600 bitų per sekundę
- Žodžio ilgis iki 8 bitų be pariteto
- Jokio pariteto
- Iš DMA nustatymų pridėkite USART2_RX cikliniu režimu
- Iš NVIC nustatymų įgalinkite USART2 visuotinį pertraukimą
- Įjunkite šviesos diodą spustelėdami PD12
Tada sugeneruok kodą:)
3 žingsnis: „Keil“programinės įrangos kūrimas
#įtraukti
#įtraukti
Šios bibliotekos bus reikalingos atliekant eilutes ir nustatant loginį kintamąjį.
/ *2 NAUDOTOJO KODAS */ HAL_UART_Recept_DMA (& huart2, (uint8_t *) data_buffer, 1); / * NAUDOTOJO KODAS PABAIGA 2 */
Čia prasidėjo UART priėmimas su DMA.
/ *NAUDOTOJO KODAS Prasideda 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Neleisti nepanaudotų argumentų (-ų) kompiliavimo įspėjimo */UNUSED (huart); / * PASTABA: Ši funkcija neturėtų būti keičiama, kai reikia atgalinio ryšio, HAL_UART_RxCpltCallback gali būti įdiegta vartotojo faile */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; indeksas _ ++; } else {index_ = 0; baigta = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * NAUDOTOJO KODAS PABAIGA 4 * /
Tai yra ISR, kuris aktyvuojamas, kai gauname vieną baitą simbolio. Taigi. mes gauname tą baitą ir rašome jį į data_full, kuriame yra visi gauti duomenys, kol gausime „\ n“. Kai gausime „\ n“, padarysime baigtą vėliavą 1 ir in ciklas:
nors (1) { / * NAUDOTOJO KODAS PABAIGA * / jei (baigtas) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (full_ data)); baigta = 0; } dar {_NOP (); } / * NAUDOTOJO KODAS 3 * /}
Jei baigta vėliava yra HIGH, mes palyginame visų gautų duomenų ir norimų duomenų turinį, o jei jie yra lygūs, perjungiame LED. Po to išvalome baigtą vėliavą ir laukiame naujų duomenų, taip pat išvalyme masyvą data_full, kad nebūtų perrašyti į masyvą.
4 žingsnis: „Python“programinės įrangos kūrimas
Taigi, čia norime išsiųsti savo numerį su „/n“pabaigoje, nes „Keil“programinė įranga turės jį pamatyti, kad žinotų pabaigą.
importuoti serialą
ser = serial. Serial ('COM17') #patikrinkite tą prievadą savo įrenginyje iš Device Manager
ser.write (b'24 / n ')
Turėtumėte matyti, kad šviesos diodas persijungia kiekvieną kartą, kai siunčiate „24 / n“. Jei siunčiate ką nors kita, tai neturėtų turėti įtakos.
5 žingsnis: Išvada
Mes pasiekėme pamokos pabaigą. jei turite kokių nors problemų ar klausimų, nedvejodami paklauskite. Stengsiuosi padėti kuo galėsiu. Labai ačiū:)
Rekomenduojamas:
Patobulintas puslaidininkių kreivės žymeklis su analoginiu atradimu 2: 8 žingsniai
Patobulintas puslaidininkių kreivių atsektuvas su 2 analoginiu atradimu: kreivių sekimo su AD2 principas aprašytas šiose nuorodose: https: //www.instructables.com/id/Semiconductor-Cur … https: //reference.digilentinc .com/reference/instru … Jei išmatuota srovė yra gana didelė, tai yra akumuliatorius
Pagrindinis mobilusis telefonas naudojant STM32F407 atradimų rinkinį ir GSM A6 modulį: 14 žingsnių (su paveikslėliais)
Pagrindinis mobilusis telefonas naudojant STM32F407 atradimų rinkinį ir GSM A6 modulį: ar kada nors norėjote sukurti šaunų įterptąjį projektą ?. Jei taip, kaip sukurti vieną iš populiariausių ir visų mėgstamiausių įtaisų, ty mobilųjį telefoną !!!. Šioje instrukcijoje nurodysiu, kaip sukurti pagrindinį mobilųjį telefoną naudojant STM
PIC MCU ir „Python“serijinis ryšys: 5 žingsniai
PIC MCU ir „Python Serial Communication“: Sveiki, vaikinai! Šiame projekte bandysiu paaiškinti savo eksperimentus su PIC MCU ir „Python“serijiniu ryšiu. Internete yra daug vadovėlių ir vaizdo įrašų, kaip bendrauti su PIC MCU per virtualų terminalą, o tai yra labai naudinga. Kaip
„Arduino“ir „Python“serijinis ryšys - klaviatūros ekranas: 4 žingsniai
„Arduino“ir „Python“serijinis ryšys - klaviatūros ekranas: Šis projektas skirtas „Mac“vartotojams, tačiau jis taip pat gali būti įgyvendintas „Linux“ir „Windows“, vienintelis žingsnis, kuris turėtų skirtis, yra diegimas
Modulinė neopikselių pertraukimo lenta su atviro kodo duonos lenta: 4 žingsniai (su nuotraukomis)
Modulinė neopikselių pertraukimo lenta su atviro kodo duonos lenta: ši instrukcija yra apie mažytę (8 mm x 10 mm) „Neopixel“šviesos diodams pritaikytą pertraukimo lentą, kurią galima sukrauti ir lituoti viena prie kitos, ji taip pat suteikia daug didesnį konstrukcijos standumą nei plonas LED juostelė daug mažesnėje formoje