
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00


Сайн байна уу! Энэхүү гарын авлагад бид STM32F4 ARM MCU болон Python хооронд USART холбоо тогтоохыг хичээх болно (үүнийг өөр хэлээр орлуулж болно). За ингээд эхэлцгээе:)
Алхам 1: Програм хангамж ба тоног төхөөрөмжийн шаардлага
Тоног төхөөрөмжийн хувьд танд дараахь зүйл хэрэгтэй болно.
- STM32F4 Discovery Board (эсвэл бусад STM32 самбар)
- USB - TTL хөрвүүлэгч
Програм хангамжийн хувьд:
- STM32CubeMX
- Keil uVision5
- Цуваа номын сан суулгасан Python
Алхам 2: STM32CubeMX -ийн тохиргоо
Эхлээд юу хийхийг хүсч байгаагаа ойлгоорой. Бид Python -аас USART -ээр дамжуулан өгөгдлийг самбар руу дамжуулж, зөв өгөгдөл байгаа эсэхийг шалгаж, удирдан залгахыг хүсч байна. Тиймээс бидэнд USART болон Led -ийг идэвхжүүлэх хэрэгтэй.
-
Холболтын таб дээрээс USART2 -ийг идэвхжүүлнэ үү.
- Асинхрон горимыг өөрчлөх
- Baud -ийн хурд 9600 бит/сек
- Үгийн урт нь 8 бит хүртэл паритетгүй
- Бага зэрэг паритет байхгүй
- DMA тохиргооноос cicular горимд USART2_RX нэмнэ үү
- NVIC тохиргооноос USART2 дэлхийн тасалдлыг идэвхжүүлнэ үү
- PD12 дээр дарж LED -ийг идэвхжүүлнэ үү
Дараа нь код үүсгээрэй:)
Алхам 3: Keil програм хангамж хөгжүүлэх
#оруулах
#оруулах
Эдгээр номын сан нь мөрийн үйлдэл болон логик хувьсагчийг тодорхойлоход шаардлагатай болно.
/ *ХЭРЭГЛЭГЧИЙН КОД ЭХЛЭХ 2 */ HAL_UART_Receive_DMA (& huart2, (uint8_t *) өгөгдөл_буфер, 1); / * ХЭРЭГЛЭГЧИЙН КОД ТӨГСГӨЛ 2/ *
Энд UMA хүлээн авахдаа DMA эхлүүлсэн болно.
/ *USER CODE BEGIN 4 */void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart) {/ *Ашиглагдаагүй аргумент (ууд) эмхэтгэлийн анхааруулгаас урьдчилан сэргийлэх */UNUSED (huart); / * ТАЙЛБАР: Дахин буцааж залгах шаардлагатай үед HAL_UART_RxCpltCallback хэрэглэгчийн файлд хэрэгжих боломжтой */ if (data_buffer [0]! = '\ N') {data_full [index_] = data_buffer [0]; индекс _ ++; } өөр {index_ = 0; дууссан = 1; } // HAL_UART_Transmit (& huart2, data_buffer, 1, 10); } / * ХЭРЭГЛЭГЧИЙН КОД 4 -ТЭГСЭГДЭХ * /
Энэ бол нэг байт тэмдэгт авахад идэвхждэг ISR юм. Тиймээс. бид тэр байтыг аваад, хүлээн авсан өгөгдлийг агуулсан data_full дээр бичээд '\ n' авах хүртэл. Бид '\ n' гэж авмагц дууссан туг 1 -ийг хийж байхад while циклд оруулна:
while (1) { / * USER CODE END WHILE * / if (дууссан) {if (strcmp (data_full, cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD, GPIO_PIN_12); } memset (data_full, '\ 0', strlen (data_full)); дууссан = 0; } өөр {_NOP (); } / * ХЭРЭГЛЭГЧИЙН КОД ЭХЛЭХ 3 * /}
Хэрэв дууссан туг өндөр бол бид хүссэн бүх өгөгдөл, хүссэн өгөгдлүүдийн агуулгыг харьцуулж, хэрэв тэнцүү бол удирдан чиглүүлэх болно. Үүний дараа бид дууссан тугийг арилгаж, шинэ өгөгдөл хүлээж, массивыг дарж бичихгүйн тулд data_full массивыг цэвэрлэнэ.
Алхам 4: Python програм хангамж хөгжүүлэх
Тиймээс энд бид дугаараа төгсгөлд нь '/n' дарж илгээхийг хүсч байна, учир нь Keil програм хангамж төгсгөлийг мэдэхийн тулд үүнийг харах шаардлагатай болно.
цуваа импортлох
ser = serial. Serial ('COM17') #Device Manager -ээс төхөөрөмж дээрх портыг шалгана уу
ser.write (b'24 / n ')
'24 / n 'илгээх болгонд LED асдаг болохыг та харах ёстой. Хэрэв та өөр зүйл илгээсэн бол энэ нь нөлөөлөх ёсгүй.
Алхам 5: Дүгнэлт
Бид хичээлийн төгсгөлд ирлээ. хэрэв танд ямар нэгэн асуудал, асуулт байвал асуухаас бүү эргэлзээрэй. Би чадах чинээгээрээ туслахыг хичээх болно. Маш их баярлалаа:)
Зөвлөмж болгож буй:
STM32F407 Discovery Kit дээр FreeRTOS -ийг эхнээс нь тохируулах: 14 алхам

STM32F407 Discovery Kit дээр FreeRTOS-ийг эхнээс нь тохируулах: FreeRTOS-ийг бодит цагийн үйлдлийн систем болгон сонгох нь маш сайн сонголт юм. FreeRTOS нь үнэхээр үнэ төлбөргүй бөгөөд олон энгийн, үр дүнтэй RTOS функцуудыг хангадаг. Гэхдээ freeRTOS -ийг эхнээс нь тохируулах нь хэцүү байж магадгүй эсвэл би хоёр удаа хэлж чадна
STM32F4 ARM MCU бүхий Servo моторын хяналт: 4 алхам

STM32F4 ARM MCU -тай Servo Motor Control: Сайн байцгаана уу найзуудаа :) Тиймээс энэ төсөлд бид STM32F4 ARM MCU бүхий servo моторыг удирдах болно. Миний хувьд би нээлтийн самбарыг ашиглах болно, гэхдээ хэрэв та асуудлын мөн чанарыг ойлговол та үүнийг MCU бүрт хэрэглэж болно. Тиймээс. Эхэлцгээе:)
ESP8266 ба Python Communication for Noobs: 6 алхам

ESP8266 ба Python Communication For Noobs: Энэхүү гарын авлага нь ESP8266 -аас ямар ч өгөгдөл авах, AT командгүйгээр python дээр удирдах боломжийг олгодог. Эхлэгчдэд ESP8266 -ийг ашиглах талаархи ихэнх гарын авлага нь хэцүү байдаг, учир нь тэд "AT COMMANDS" "Чип рүү оруулна уу, энэ нь: шаардлагагүй хог хаягдал
UCL -Embedded -Relay Communication Box: 5 алхам

UCL -Embedded -Relay Communication Box: Энэхүү төслийн гол санаа бол WiFi холбоо, Nodmcu esp8266 микро контроллер ашиглан Blynk програм ашиглан хоёр реле болон DHT11 мэдрэгчийг удирдах явдал юм
PID алгоритмыг ашиглан DC моторын хурдыг хянах (STM32F4): 8 алхам (зурагтай)

PID алгоритмыг ашиглан DC моторын хурдны хяналт (STM32F4): бүгдээрээ сайн байна уу, энэ бол өөр төсөлтэй холбоотой юм. Энэ удаад STM32F407 гэж MC байна. Энэ бол семестрийн дунд төслийн төгсгөл юм. Танд таалагдсан гэж найдаж байна. Энэ нь маш олон ойлголт, онол шаарддаг тул бид эхлээд үүнд хамрагдах болно. Компьютер гарч ирснээр