فهرست مطالب:
- مرحله 1: نرم افزار و سخت افزار مورد نیاز
- مرحله 2: پیکربندی STM32CubeMX
- مرحله 3: توسعه نرم افزار Keil
- مرحله 4: توسعه نرم افزار پایتون
- مرحله 5: نتیجه گیری
تصویری: برد کشف STM32F4 و ارتباط پارتون USART (STM32CubeMx): 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
سلام! در این آموزش ما سعی می کنیم ارتباط USART را بین STM32F4 ARM MCU و پایتون برقرار کنیم (می توان آن را با هر زبان دیگری جایگزین کرد). بنابراین ، بیایید شروع کنیم:)
مرحله 1: نرم افزار و سخت افزار مورد نیاز
از نظر سخت افزار شما نیاز دارید:
- برد کشف STM32F4 (یا هر برد STM32 دیگر)
- مبدل USB به TTL
از نظر نرم افزاری:
- STM32CubeMX
- Keil uVision5
- پایتون با کتابخانه سریال نصب شده است
مرحله 2: پیکربندی STM32CubeMX
ابتدا بیایید بفهمیم که می خواهیم چه کار کنیم. ما می خواهیم داده ها را از طریق پارتون از طریق USART به هیئت مدیره منتقل کنیم و بررسی کنیم که آیا داده های صحیح و ضامن led داریم یا خیر. بنابراین ، ما نیاز به فعال کردن USART و Led داریم.
-
USART2 را از برگه Connectivity فعال کنید.
- حالت را به Asynchoronous تغییر دهید
- نرخ Baud به 9600 بیت در ثانیه
- طول کلمه تا 8 بیت بدون برابری
- بیت برابری ندارد
- از تنظیمات DMA ، USART2_RX را در حالت خاص اضافه کنید
- از تنظیمات NVIC وقفه جهانی USART2 را فعال کنید
- با کلیک روی PD12 LED را فعال کنید
سپس کد تولید کنید:)
مرحله 3: توسعه نرم افزار Keil
#عبارتند از
#عبارتند از
این کتابخانه ها در عملیات رشته و تعریف متغیر بولی مورد نیاز خواهند بود.
/ *USER CODE BEGIN 2 */ HAL_UART_Receive_DMA (& huart2، (uint8_t *) data_buffer، 1)؛ / * USER CODE END 2 */
در اینجا ، دریافت UART با 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]؛ شاخص _ ++؛ } else {index_ = 0؛ تمام = 1؛ } // HAL_UART_Transmit (& huart2، data_buffer، 1، 10)؛ } / * USER CODE END 4 * /
این ISR است که با دریافت یک بایت کاراکتر فعال می شود. بنابراین. ما آن بایت را دریافت می کنیم و آن را در data_full که حاوی اطلاعات کامل دریافت شده است می نویسیم تا زمانی که / \ n 'دریافت کنیم. هنگامی که '\ n' را دریافت می کنیم ، پرچم 1 و حلقه while را به پایان می رسانیم:
در حالی که (1) { / * USER CODE END WHILE * / اگر (تمام شد) {if (strcmp (data_full، cmp_) == 0) {HAL_GPIO_TogglePin (GPIOD ، GPIO_PIN_12) ؛ } memset (data_full، '\ 0'، strlen (data_full))؛ تمام = 0 ؛ } else {_NOP ()؛ } / * کد کاربر شروع شد 3 * /}
اگر پرچم نهایی بالا باشد ، محتویات داده های دریافت شده و داده های موردنظر خود را مقایسه می کنیم و اگر برابر باشند ، led را تغییر می دهیم. پس از آن پرچم تمام شده را پاک می کنیم و منتظر داده های جدید هستیم و همچنین آرایه data_full را پاک می کنیم تا در آرایه رونویسی نشود.
مرحله 4: توسعه نرم افزار پایتون
بنابراین ، در اینجا ما می خواهیم شماره خود را با '/n' در پایان ارسال کنیم ، زیرا نرم افزار Keil برای اطلاع از پایان باید آن را ببیند.
سریال واردات
ser = serial. Serial ('COM17') #پورت دستگاه خود را از Device Manager بررسی کنید
ser.write (b'24 / n ')
شما باید ببینید که LED هربار که "24 / n" را ارسال می کنید تغییر حالت می دهد. اگر چیز دیگری ارسال می کنید ، نباید روی آن تأثیر بگذارد.
مرحله 5: نتیجه گیری
به پایان آموزش رسیدیم. اگر مشکلی یا س haveالی دارید لطفاً از پرسیدن دریغ نکنید. تا جایی که بتوانم سعی می کنم کمک کنم. بسیار از شما متشکرم:)
توصیه شده:
ردیاب منحنی نیمه هادی بهبود یافته با کشف آنالوگ 2: 8 مرحله
ردیاب منحنی نیمه هادی بهبود یافته با کشف آنالوگ 2: اصل پیگیری منحنی با AD2 در پیوندهای زیر شرح داده شده است: https: //www.instructables.com/id/Semiconductor-Cur … https: //reference.digilentinc .com/مرجع/instru … اگر جریان اندازه گیری شده بسیار زیاد باشد ، accu است
برد بلند ، 1.8 کیلومتر ، ارتباط بی سیم آردوینو تا آردوینو با HC-12 .: 6 مرحله (همراه با تصاویر)
برد طولانی ، 1.8 کیلومتر ، ارتباطات بی سیم آردوینو تا آردوینو با HC-12. ماژول ارتباطی بسیار مفید ، بسیار قدرتمند و آسان برای استفاده است. ابتدا می روی
نحوه برنامه ریزی برد AVR با استفاده از برد آردوینو: 6 مرحله
نحوه برنامه ریزی برد AVR با استفاده از برد Arduino: آیا یک برد میکروکنترلر AVR در اطراف خود قرار داده اید؟ آیا برنامه نویسی آن مشکل است؟ خوب ، شما در جای مناسب هستید. در اینجا نحوه برنامه ریزی برد میکروکنترلر Atmega8a با استفاده از برد Arduino Uno به عنوان برنامه نویس را به شما نشان خواهم داد. بنابراین بدون هیچ چیز بعدی
نشانگر سطح آب بی سیم با برد بلند با زنگ هشدار - برد تا 1 کیلومتر - هفت سطح: 7 مرحله
نشانگر سطح آب بی سیم با برد بلند با زنگ هشدار | برد تا 1 کیلومتر | هفت سطح: آن را در یوتیوب تماشا کنید: https://youtu.be/vdq5BanVS0Y ممکن است بسیاری از شاخص های سطح آب سیمی و بی سیم را مشاهده کرده باشید که برد 100 تا 200 متر را ارائه می دهند. اما در این دستورالعمل ، شما قرار است Indi سطح آب بی سیم برد بلند را ببینید
مونتاژ برد Niftymitter V0.24 - فرستنده FM برد کوتاه: 6 مرحله
مونتاژ برد Niftymitter V0.24 - فرستنده FM برد کوتاه: این دستورالعمل شما را در جمع آوری مدار برای Niftymitter ، یک فرستنده مینی FM منبع باز ، راهنمایی می کند. این مدار از یک نوسان ساز آزاد استفاده می کند و بر اساس ساده ترین فرستنده FM Tetsuo Kogawa ساخته شده است. این پروژه در www.op قرار دارد