Orodha ya maudhui:

Bodi ya Ugunduzi ya STM32F4 na Python USART Mawasiliano (STM32CubeMx): Hatua 5
Bodi ya Ugunduzi ya STM32F4 na Python USART Mawasiliano (STM32CubeMx): Hatua 5

Video: Bodi ya Ugunduzi ya STM32F4 na Python USART Mawasiliano (STM32CubeMx): Hatua 5

Video: Bodi ya Ugunduzi ya STM32F4 na Python USART Mawasiliano (STM32CubeMx): Hatua 5
Video: так как будем работать ФРАНЦУЗ - закон не позволяет гражданин начальник 2024, Julai
Anonim
Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx)
Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx)
Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx)
Bodi ya Ugunduzi ya STM32F4 na Mawasiliano ya USART ya Python (STM32CubeMx)

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: