![Bodi ya Ugunduzi ya STM32F4 na Python USART Mawasiliano (STM32CubeMx): Hatua 5 Bodi ya Ugunduzi ya STM32F4 na Python USART Mawasiliano (STM32CubeMx): Hatua 5](https://i.howwhatproduce.com/images/002/image-4967-55-j.webp)
Orodha ya maudhui:
2025 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2025-01-23 15:11
![Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx) Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx)](https://i.howwhatproduce.com/images/002/image-4967-56-j.webp)
![Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx) Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx)](https://i.howwhatproduce.com/images/002/image-4967-57-j.webp)
Halo! Katika mafunzo haya tutajaribu kuanzisha mawasiliano ya USART kati ya STM32F4 ARM MCU na Python (inaweza kubadilishwa na lugha nyingine yoyote). Kwa hivyo, wacha tuanze:)
Hatua ya 1: Mahitaji ya Programu na vifaa
Kwa upande wa vifaa unahitaji:
- Bodi ya Ugunduzi ya STM32F4 (au bodi nyingine yoyote ya STM32)
- USB kwa kibadilishaji cha TTL
Kwa upande wa programu:
- STM32CubeMX
- Keil uVision5
- Chatu na maktaba ya serial imewekwa
Hatua ya 2: Usanidi wa STM32CubeMX
Kwanza hebu tuelewe tunataka kufanya nini. Tunataka kusambaza data kwenye bodi kutoka Python juu ya USART na kuangalia ikiwa tuna data sahihi na kugeuza kuongozwa. Kwa hivyo, tunahitaji kuwezesha USART na Led.
-
Washa USART2 kutoka kwa kichupo cha Uunganisho.
- Badilisha hali iwe Asynchoronous
- Kiwango cha Baud hadi 9600 Bits / s
- Urefu wa neno hadi Bits 8 bila usawa
- Hakuna usawa kidogo
- Kutoka kwa mipangilio ya DMA ongeza USART2_RX katika hali ya kupendeza
- Kutoka kwa Mipangilio ya NVIC kuwezesha usumbufu wa ulimwengu wa USART2
- Wezesha LED kwa kubonyeza PD12
Kisha tengeneza nambari:)
Hatua ya 3: Maendeleo ya Programu ya Keil
# pamoja
# pamoja
Maktaba hizi zitahitajika katika shughuli za kamba na kufafanua kutofautiana kwa boolean.
/ * Nambari ya MTUMIAJI Start 2 * / HAL_UART_Pokea_DMA (& huart2, (uint8_t *) data_buffer, 1); / * KIWANGO CHA MTUMIAJI MWISHO 2 * /
Hapa, UART hupokea na DMA imeanza.
/ * KIWANGO CHA MTUMIAJI Anzisha 4 * / batili HAL_UART_RxCpltCallback (UART_HandleTypeDef * huart) {/ * Zuia malalamiko ya mikutano ambayo hayatumiki * / UNUSED (huart); / * KUMBUKA: Kazi hii haifai kubadilishwa, wakati upigaji simu unahitajika, HAL_UART_RxCpltCallback inaweza kutekelezwa katika faili ya mtumiaji * / ikiwa (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; fahirisi _ ++; } mwingine {index_ = 0; kumaliza = 1; } // HAL_UART_Sambaza (& huart2, data_buffer, 1, 10); } / * KIWANGO CHA MTUMIAJI MWISHO 4 * /
Hii ni ISR ambayo imeamilishwa tunapopata baiti moja ya tabia. Kwa hivyo. tunapata baiti hiyo na kuiandikia data_full ambayo ina data kamili iliyopokelewa hadi tutakapopata '\ n'. Tunapopata '\ n' tunafanya kumaliza bendera 1 na wakati wa kitanzi:
wakati (1) {/ * MTUMIAJI KODI MWISHO WAKATI * / ikiwa (imemalizika) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); kumaliza = 0; } mwingine {_NOP (); } / * Nambari ya MTUMIAJI ANZA 3 * /}
Ikiwa bendera iliyomalizika ni ya juu tunalinganisha yaliyomo ya data kamili na data tunayopenda na ikiwa ni sawa tunabadilisha kuongozwa. Baada ya hapo tunafuta bendera iliyomalizika na kusubiri data mpya na pia futa safu ya data_full ili tusiandike kwenye safu.
Hatua ya 4: Maendeleo ya Programu ya Python
Kwa hivyo, hapa tunataka kutuma nambari yetu na '/ n' mwishoni, kwa sababu programu ya Keil itahitaji kuiona ili kujua mwisho.
kuagiza serial
ser = serial. Serial ('COM17') # angalia bandari hiyo kwenye kifaa chako kutoka kwa Meneja wa Kifaa
andika (b'24 / n ')
Unapaswa kuona kuwa LED huwasha kila wakati unapotuma '24 / n '. Ukituma kitu kingine chochote haipaswi kuathiri.
Hatua ya 5: Hitimisho
Tumefika mwisho wa mafunzo. ikiwa una shida yoyote au swali tafadhali usisite kuuliza. Nitajaribu kusaidia kadiri niwezavyo. Asante sana:)
Ilipendekeza:
Bodi ya MXY - Bodi ya Uchoraji wa chini ya Bajeti ya XY ya Bajeti: Hatua 8 (na Picha)
![Bodi ya MXY - Bodi ya Uchoraji wa chini ya Bajeti ya XY ya Bajeti: Hatua 8 (na Picha) Bodi ya MXY - Bodi ya Uchoraji wa chini ya Bajeti ya XY ya Bajeti: Hatua 8 (na Picha)](https://i.howwhatproduce.com/images/007/image-19275-j.webp)
Bodi ya MXY - Bodi ya Robot ya Kuchora ya Bajeti ya chini ya Bajeti: Lengo langu lilikuwa kubuni bodi ya mXY kutengeneza bajeti ndogo mashine ya kuchora ya XY. Kwa hivyo nilibuni bodi ambayo inafanya iwe rahisi kwa wale ambao wanataka kufanya mradi huu. Katika mradi uliopita, wakati wa kutumia pcs 2 Nema17 stepper motors, bodi hii u
Bodi ya mkate ya Bodi ya Dev: Hatua 12 (na Picha)
![Bodi ya mkate ya Bodi ya Dev: Hatua 12 (na Picha) Bodi ya mkate ya Bodi ya Dev: Hatua 12 (na Picha)](https://i.howwhatproduce.com/images/003/image-8258-33-j.webp)
Bodi ya Mkate wa Bodi ya Dev: Maagizo haya yanaonyesha jinsi ya kuunda ubao wa mikate uliotengenezwa maalum kwa bodi ya dev
Chanzo wazi Bodi ya mkate-Urafiki wa kawaida wa Neopixel Bodi ya kuzuka: Hatua 4 (na Picha)
![Chanzo wazi Bodi ya mkate-Urafiki wa kawaida wa Neopixel Bodi ya kuzuka: Hatua 4 (na Picha) Chanzo wazi Bodi ya mkate-Urafiki wa kawaida wa Neopixel Bodi ya kuzuka: Hatua 4 (na Picha)](https://i.howwhatproduce.com/images/005/image-15000-13-j.webp)
Bodi ya kuzuka ya Chombo cha Mkate cha Burudani cha Rahisi cha Bodi ya Mkato: Hii inaweza kufundishwa ni juu ya bodi ndogo (8mm x 10mm) ya bodi ya kuzunguka kwa mkate wa LED za Neopixel ambazo zinaweza kushonwa na kuuziana, pia hutoa ugumu zaidi wa muundo kuliko nyembamba Ukanda wa LED katika hali ndogo zaidi ya fomu
Jinsi ya Kupanga Bodi ya AVR Kutumia Bodi ya Arduino: Hatua 6
![Jinsi ya Kupanga Bodi ya AVR Kutumia Bodi ya Arduino: Hatua 6 Jinsi ya Kupanga Bodi ya AVR Kutumia Bodi ya Arduino: Hatua 6](https://i.howwhatproduce.com/images/001/image-2454-35-j.webp)
Jinsi ya Kupanga Bodi ya AVR Kutumia Bodi ya Arduino: Je! Una bodi ya kudhibiti microcontroller ya AVR iliyowekwa kote? Je! Ni ngumu kuipanga? Kweli, uko mahali pazuri. Hapa, nitakuonyesha jinsi ya kupanga bodi ndogo ya Atmega8a kwa kutumia bodi ya Arduino Uno kama programu. Kwa hivyo bila furth
Bodi ndogo ya AVR na Bodi za Ziada: Hatua 7
![Bodi ndogo ya AVR na Bodi za Ziada: Hatua 7 Bodi ndogo ya AVR na Bodi za Ziada: Hatua 7](https://i.howwhatproduce.com/images/002/image-5156-63-j.webp)
Bodi ya Mini ya AVR iliyo na Bodi za Ziada: Sawa sawa na PIC 12f675 mini protoboard, lakini imepanuliwa na na bodi za ziada. Kutumia attiny2313