Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Salom! Ushbu qo'llanmada biz STM32F4 ARM MCU va Python o'rtasida USART aloqasini o'rnatishga harakat qilamiz (uni boshqa til bilan almashtirish mumkin). Shunday qilib, boshlaylik:)
1 -qadam: Dasturiy ta'minot va apparat talablari
Uskuna jihatidan sizga kerak:
- STM32F4 kashfiyot kartasi (yoki boshqa STM32 platasi)
- USB - TTL konvertori
Dasturiy ta'minot nuqtai nazaridan:
- STM32CubeMX
- Keil uVision 5
- Python, ketma -ket kutubxona o'rnatilgan
2 -qadam: STM32CubeMX konfiguratsiyasi
Avval nima qilmoqchi ekanligimizni tushunib olaylik. Biz USART orqali Python -dan ma'lumotlarni taxtaga o'tkazmoqchimiz va bizda to'g'ri ma'lumot bor -yo'qligini tekshirmoqchimiz. Shunday qilib, bizga USART va Led -ni yoqish kerak.
-
USART2 -ni ulanish yorlig'idan yoqing.
- Rejimni asinxron holatga o'tkazing
- Baud tezligi 9600 bit/s gacha
- Paritasiz 8 bitli so'z uzunligi
- Parite yo'q
- DMA sozlamalarida USART2_RX ni kikulyar rejimga qo'shing
- NVIC sozlamalarida USART2 global uzilishini yoqing
- PD12 tugmachasini bosib LEDni yoqing
Keyin kod yarating:)
3 -qadam: Keil dasturiy ta'minotini ishlab chiqish
#qo'shing
#qo'shing
Bu kutubxonalar satr operatsiyalarida va boolean o'zgaruvchini aniqlashda kerak bo'ladi.
/ *USER CODE BEGIN 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) data_buffer, 1); / * FOYDALANISH KODI 2 *
Bu erda UMA DMA bilan qabul qilishni boshladi.
/ *USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Ishlatilmagan argument (lar) ni kompilyatsiya qilish haqida ogohlantirishni oldini olish */QO'LSIZ (huart); / * ESLATMA: Bu funksiya o'zgartirilmasligi kerak, qayta qo'ng'iroq qilish zarur bo'lganda, HAL_UART_RxCpltCallback */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0] foydalanuvchi faylida qo'llanilishi mumkin.]; indeks _ ++; } boshqa {index_ = 0; tugagan = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * FOYDALANISH KODI 4 -DAVR tugaydi * /
Bu bir bayt belgini olganimizda faollashtirilgan ISR. Shunday qilib biz bu baytni olamiz va "\ n" ni olmagunimizcha uni to'liq olingan ma'lumotlarni o'z ichiga olgan data_full ga yozamiz. Biz "\ n" ni olganimizda, tugallangan bayroqni 1 va while loopida qilamiz:
while (1) { / * USER CODE END WHILE * / if (tugagan) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } xotira to'plami (data_full, '\ 0', strlen (data_full)); tugadi = 0; } boshqa {_NOP (); } / * FOYDALANISH KODI 3 * /} BOSHLADI
Agar tugallangan bayroq YUQORI bo'lsa, biz qabul qilingan ma'lumotlar va biz xohlagan ma'lumotlarning tarkibini solishtiramiz va agar ular teng bo'lsa, biz rahbarlikni o'zgartiramiz. Shundan so'ng, biz tugallangan bayroqni tozalaymiz va yangi ma'lumotlarni kutamiz, shuningdek, qatorga yozib yubormaslik uchun data_full qatorini tozalaymiz.
4 -qadam: Python dasturiy ta'minotini ishlab chiqish
Shunday qilib, biz o'z raqamimizni oxirida '/n' bilan yubormoqchimiz, chunki Keil dasturini oxirini bilish uchun uni ko'rish kerak bo'ladi.
serialni import qilish
ser = serial. Serial ('COM17') #Qurilma menejeridan qurilmangizdagi ushbu portni tekshiring
ser.write (b'24 / n ')
Siz har safar '24 / n 'yuborganingizda LED yonib turishini ko'rishingiz kerak. Agar siz boshqa narsani yuborsangiz, bu unga ta'sir qilmasligi kerak.
5 -qadam: Xulosa
Biz dars oxirigacha etib keldik. agar sizda biron bir muammo yoki savol bo'lsa, ikkilanmasdan so'rang. Qo'ldan kelgancha yordam berishga harakat qilaman. Sizga katta rahmat:)
Tavsiya:
STM32F407 Discovery Kit -da Scratch -dan FreeRTOS -ni sozlash: 14 qadam
STM32F407 Discovery Kit-da FreeRTOS-ni Scratch-dan sozlash: O'rnatilgan loyihangiz uchun real vaqtda operatsion tizim sifatida FreeRTOS-ni tanlash-ajoyib tanlov. FreeRTOS haqiqatan ham bepul va RTOS -ning ko'plab oddiy va samarali xususiyatlarini taqdim etadi. FreeRTOS -ni noldan o'rnatish qiyin bo'lishi mumkin yoki men aytaman
STM32F407 Discovery to'plami va GSM A6 modulidan foydalanadigan asosiy mobil telefon: 14 qadam (rasmlar bilan)
STM32F407 Discovery Kit va GSM A6 modulidan foydalanadigan asosiy mobil telefon: Siz hech qachon ajoyib loyihani yaratishni xohlaganmisiz? Ha bo'lsa, qanday qilib eng mashhur va hamma yoqtirgan gadjetlardan birini, ya'ni Mobil telefonni yasash mumkin? !!! Ushbu yo'riqnomada men sizga STM yordamida asosiy mobil telefonni qanday yasashni ko'rsataman
STM32F4 ARM MCU bilan servo dvigatelni boshqarish: 4 qadam
STM32F4 ARM MCU bilan servo dvigatelni boshqarish: Salom do'stlar yana :) Shunday qilib, biz ushbu loyihada STM32F4 ARM MCU bilan servo motorni boshqaramiz. Menimcha, men kashfiyot kartasidan foydalanaman, lekin agar siz muammoning mohiyatini tushunsangiz, uni har bir MCU uchun qo'llashingiz mumkin. Shunday qilib Qani boshladik:)
PID algoritmi (STM32F4) yordamida shahar motorining tezligini boshqarish: 8 qadam (rasmlar bilan)
PID algoritmidan (STM32F4) foydalangan holda shahar motorining tezligini nazorat qilish: hammaga salom, bu boshqa loyiha bilan bog'liq. Bu safar STM32F407 MC sifatida. Bu yarim yillik loyihaning oxiri. Umid qilamanki, sizga bu yoqadi. Bu juda ko'p tushuncha va nazariyani talab qiladi, shuning uchun biz birinchi navbatda kompyuterlar paydo bo'lishi bilan
Analog Discovery 2 va LabVIEW yordamida DIY EKG: 8 qadam
Analog Discovery 2 va LabVIEW yordamida DIY EKG: Ushbu yo'riqnomada men sizga uy qurilishi elektrokardiografini (EKG) qanday qilishni ko'rsataman. Ushbu mashinaning maqsadi - yurak tomonidan yaratilgan tabiiy elektr potentsialini kuchaytirish, o'lchash va qayd etish. EKG ko'plab ma'lumotlarni ochishi mumkin