جدول المحتويات:
- الخطوة 1: متطلبات البرامج والأجهزة
- الخطوة 2: تكوين STM32CubeMX
- الخطوة 3: Keil Software Development
- الخطوة 4: تطوير برمجيات بايثون
- الخطوة 5: الخاتمة
فيديو: لوحة اكتشاف STM32F4 و Python USART Communication (STM32CubeMx): 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
أهلا! سنحاول في هذا البرنامج التعليمي إنشاء اتصال USART بين STM32F4 ARM MCU و Python (يمكن استبداله بأي لغة أخرى). لذلك دعونا نبدأ:)
الخطوة 1: متطلبات البرامج والأجهزة
من حيث الأجهزة التي تحتاجها:
- لوحة اكتشاف STM32F4 (أو أي لوحة STM32 أخرى)
- USB لتحويل TTL
من حيث البرمجيات:
- STM32CubeMX
- كايل uVision5
- بايثون مع مكتبة تسلسلية مثبتة
الخطوة 2: تكوين STM32CubeMX
أولاً ، دعنا نفهم ما نريد القيام به. نريد نقل البيانات إلى اللوحة من Python عبر USART والتحقق مما إذا كانت لدينا بيانات صحيحة وقيادة التبديل. لذلك ، نحتاج إلى تمكين USART و Led.
-
قم بتمكين USART2 من علامة تبويب الاتصال.
- تغيير الوضع إلى Asynchoronous
- معدل الباود إلى 9600 بت / ثانية
- طول الكلمة إلى 8 بت بدون تماثل
- لا يوجد بت التكافؤ
- من إعدادات DMA أضف USART2_RX في الوضع الدائري
- من إعدادات NVIC ، قم بتمكين المقاطعة العامة USART2
- قم بتمكين LED بالنقر فوق PD12
ثم قم بإنشاء رمز:)
الخطوة 3: Keil Software Development
#يشمل
#يشمل
ستكون هناك حاجة إلى هذه المكتبات في عمليات السلسلة ولتحديد المتغير المنطقي.
/ * رمز المستخدم BEGIN 2 * / HAL_UART_Receive_DMA (& huart2، (uint8_t *) data_buffer، 1)؛ / * نهاية رمز المستخدم 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] ؛ فهرس _ ++ ؛ } آخر {index_ = 0 ؛ انتهى = 1 ؛ } // HAL_UART_Transmit (& huart2، data_buffer، 1، 10) ؛ } / * نهاية رمز المستخدم 4 * /
هذا هو ISR الذي يتم تنشيطه عندما نحصل على بايت واحد من الحرف. وبالتالي. نحصل على هذا البايت ونكتبه إلى data_full الذي يحتوي على البيانات الكاملة المستلمة حتى نحصل على '\ n'. عندما نحصل على "\ n" نقوم بعمل العلم النهائي 1 وفي أثناء الحلقة:
while (1) {/ * USER CODE END WHILE * / if (finish) {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: تطوير برمجيات بايثون
لذا ، نريد هنا إرسال رقمنا مع '/ n' في النهاية ، لأن برنامج Keil سيحتاج إلى رؤيته لمعرفة النهاية.
استيراد المسلسل
ser = serial. Serial ('COM17') # تحقق من هذا المنفذ على جهازك من إدارة الأجهزة
ser.write (b'24 / n ')
يجب أن ترى أن LED يبدل في كل مرة ترسل فيها "24 / n". إذا قمت بإرسال أي شيء آخر فلن يؤثر ذلك عليه.
الخطوة 5: الخاتمة
لقد وصلنا إلى نهاية البرنامج التعليمي. إذا كان لديك أي مشكلة أو سؤال فلا تتردد في طرحها. سأحاول المساعدة بقدر ما أستطيع. شكرا جزيلا:)
موصى به:
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
كاميرا IP مع اكتشاف الوجه باستخدام لوحة ESP32-CAM: 5 خطوات
كاميرا IP مع اكتشاف الوجه باستخدام لوحة ESP32-CAM: هذا المنشور مختلف مقارنة بالآخرين ونلقي نظرة على لوحة ESP32-CAM المثيرة جدًا للاهتمام والتي تعتبر رخيصة بشكل مدهش (أقل من 9 دولارات) وسهلة الاستخدام. نقوم بإنشاء كاميرا IP بسيطة يمكن استخدامها لدفق بث فيديو مباشر باستخدام 2
اكتشاف اللون في Python باستخدام OpenCV: 8 خطوات
اكتشاف اللون في Python باستخدام OpenCV: مرحبًا! تُستخدم هذه التعليمات للتوجيه حول كيفية استخراج لون معين من صورة في لغة python باستخدام مكتبة openCV. إذا كنت جديدًا على هذه التقنية ، فلا داعي للقلق ، ففي نهاية هذا الدليل ستتمكن من برمجة لونك الخاص
كيفية برمجة لوحة AVR باستخدام لوحة Arduino: 6 خطوات
كيفية برمجة لوحة AVR باستخدام لوحة Arduino: هل لديك لوحة متحكم AVR حولها؟ هل من الصعب برمجته؟ حسنا، أنت في المكان المناسب. هنا ، سأوضح لك كيفية برمجة لوحة متحكم Atmega8a باستخدام لوحة Arduino Uno كمبرمج. لذلك بدون بعيد
واجهة لوحة المفاتيح مع 8051 وعرض أرقام لوحة المفاتيح في 7 أجزاء: 4 خطوات (بالصور)
واجهة لوحة المفاتيح مع 8051 وعرض أرقام لوحة المفاتيح في 7 قطاعات: في هذا البرنامج التعليمي ، سأخبرك عن كيفية تعاملنا مع لوحة المفاتيح مع 8051 وعرض أرقام لوحة المفاتيح في عرض 7 مقاطع