- تحديد وتنزيل منصات التطوير المطلوبة للوحات Nucleo64
- مخطط الدائرة وإعداد الأجهزة
- الشروع في العمل مع STM32CubeMX للوحات تطوير STM32 Nucleo64
- برمجة STM32 Nucleo64 Development Board باستخدام TrueSTUDIO
- برنامج STM32 Nucleo64 للتحكم في LED باستخدام زر الضغط
- تصحيح الأخطاء وتحميل التعليمات البرمجية إلى STM32 Necleo64 Development Board باستخدام TrueSTUDIO
يجب أن يكون الكثير منا على دراية بالمتحكمات الدقيقة ولوحات التطوير الشائعة مثل Arduino و Raspberry Pi و ESP8266 و NoduMCU و 8051 وما إلى ذلك. في الواقع ، بالنسبة لمعظم الناس ، كان Arduino هو أول لوحة تطوير خاصة بهم ، ولكن بينما نحفر بعمق ونبدأ تصميمات احترافية ، سندرك قريبًا قيود Arduino (مثل التكلفة ، والتنوع ، والاستقرار ، والسرعة ، وما إلى ذلك) ونفهم الحاجة إلى التحول إلى منصة متحكم دقيقة أكثر أصالة مثل PIC و STM و Renesas ، إلخ.
لقد قمنا بالفعل بتغطية سلسلة من دروس PIC Microcontroller التعليمية ، والتي توجه المبتدئين لتعلم الميكروكونترولر PIC. وبالمثل ، بدءًا من هذه المقالة ، سنخطط أيضًا لسلسلة من دروس مجلس تطوير STM32 Nucleo64 والتي يمكن أن تساعد المبتدئين المطلقين على التعلم والتطوير باستخدام منصة STM32. لوحات تطوير Nucleo64 منخفضة التكلفة وسهلة الاستخدام للمطورين المحترفين وكذلك للهواة. إذا كنت جديدًا تمامًا على STM32 Nucleo64 Development Boards ، فراجع مقطع فيديو مراجعة Nucleo64 هذا لفهم أساسيات هذا المنتدى قبل المتابعة. يوضح الفيديو أيضًا كيفية برمجة STM32 باستخدام منصة ARM Mbed ولكن في هذا البرنامج التعليمي ، سنستخدم منصة أخرى مجانية من ST Microelectronics تسمى TrueSTUDIO.
ملاحظة: هناك العديد من إصدارات STM32 Nucleo64 Development Boards ، واللوحة المحددة المستخدمة في هذا البرنامج التعليمي هي NUCLEO-F030R8. لقد اخترنا هذا اللوح بشكل أساسي بسبب تكلفته المنخفضة. حتى إذا كان لديك إصدار مختلف ، فستكون معظم الأشياء التي تمت مناقشتها في البرنامج التعليمي كافية لكي تبدأ.
تحديد وتنزيل منصات التطوير المطلوبة للوحات Nucleo64
سيحتاج البدء مع أي متحكم دقيق إلى IDE للبرمجة مثل Arduino IDE للوحات Arduino ، و Atmel Studio لـ AVR microcontroller ، و MP Lab for PIC ، وما إلى ذلك ، لذلك نحن هنا أيضًا بحاجة إلى IDE للوحات STM32 Nucleo64 الخاصة بنا لأداء البرمجة وتصحيح الأخطاء. تتكون عائلة STM32 من ميكروكنترولر 32 بت التي تدعم IDEs وسلاسل الأدوات التالية:
- IAR Embedded Workbench® for ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- منضدة النظام لـ STM32
هنا من أجل برامجنا التعليمية ، سيتم استخدام TrueSTUDIO لكتابة التعليمات البرمجية وتجميعها وتصحيحها لأنها مجانية للتنزيل والاستخدام حتى للمشاريع التجارية دون أي متطلبات ترخيص. ثم سيتم استخدام STM32CubeMX لإنشاء برامج تشغيل طرفية للوحات STM32 لتسهيل البرمجة. لتحميل برنامجنا (ملف hex) إلى لوحة التطوير الخاصة بنا ، يستخدم الأشخاص عادةً أداة STM32 ST-LINK المساعدة ، ولكن بدلاً من ذلك ، سنستخدم TrueSTUDIO نفسها للقيام بذلك. يحتوي TrueSTUDIO على وضع تصحيح الأخطاء الذي يسمح للمبرمجين بتحميل ملف hex مباشرةً إلى لوحة STM32. يسهل تنزيل كل من TrueSTUIO و STM32CubeMX ، ما عليك سوى اتباع الرابط أدناه ، والاشتراك وتنزيل برنامج الإعداد. ثم قم بتثبيتها على الكمبيوتر المحمول الخاص بك.
- قم بتنزيل STM32Cube MX
- تنزيل TrueSTUDIO
مخطط الدائرة وإعداد الأجهزة
قبل أن نبدأ في قسم البرامج والترميز ، دعنا نجهز مجلسنا لهذا المشروع. كما ذكرنا سابقًا في هذه المقالة ، سنتحكم في مؤشر LED باستخدام زر ضغط. الآن ، إذا كنت قد شاهدت الفيديو المرتبط أعلاه ، فيجب أن تعلم بالفعل أن STM32 Development Board بها مجموعتين من دبابيس الموصل على كلا الجانبين تسمى دبابيس ST Morpho. لقد قمنا بتوصيل زر ضغط ومصباح LED بهذه المسامير كما هو موضح في مخطط الدائرة أدناه.
تعتبر توصيلات الدوائر سهلة لهذا المشروع ، فنحن بحاجة إلى توصيل مصباح LED في PA5 من PORTA ومفتاح في PC13 من PORTC فيما يتعلق بـ GND. بمجرد إجراء الاتصالات ، بدا إعداد الاختبار الخاص بي هكذا.
بدلاً من ذلك ، يمكننا أيضًا استخدام LED المدمج وزر الضغط على اللوحة. هذه المصابيح المدمجة وزر الضغط متصلان أيضًا بنفس الدبوس كما هو موضح في مخطط الدائرة. لقد أضفنا المكونات الخارجية للممارسة فقط. سيكون الرسم البياني أدناه الخاص بلجنة تطوير STM32 مفيدًا لمعرفة مكان توصيل كل دبابيس مورفو على متن الطائرة.
الشروع في العمل مع STM32CubeMX للوحات تطوير STM32 Nucleo64
الخطوة 1: بعد التثبيت ، قم بتشغيل STM32CubeMX ، ثم حدد محدد لوحة الوصول لتحديد لوحة STM32.
الخطوة 2: الآن ابحث عن لوحة باستخدام اسم لوحة STM32 مثل NUCLEO-F030R8 وانقر على اللوحة التي تظهر في الصورة. إذا كان لديك لوحة مختلفة ابحث عن اسمها الخاص. سيدعم البرنامج جميع لوحات تطوير STM32 من ST Microelectronics.
الخطوة 3: الآن انقر فوق "نعم" كما هو موضح في الصورة أدناه ، لتهيئة جميع الأجهزة الطرفية في وضعها الافتراضي. يمكننا لاحقًا تغيير العناصر المطلوبة حسب الحاجة في مشروعنا.
بعد النقر فوق "نعم" ، ستكون الشاشة مشابهة للصورة أدناه مع وجود دبوس باللون الأخضر يشير إلى أنهما قد تم تشغيلهما افتراضيًا.
الخطوة 4: الآن يمكن للمستخدمين تحديد الإعداد المطلوب من الفئات. هنا في هذا البرنامج التعليمي ، سنقوم بتبديل مؤشر LED باستخدام زر ضغط. لذا، نحن بحاجة لجعل دبوس الصمام والانتاج و التبديل دبوس كما INPUT.
يمكنك تحديد أي دبوس ، لكنني أقوم باختيار PA5 وتغيير حالته إلى GPIO_Output لجعله يعمل كدبوس إخراج كما هو موضح في الصورة أدناه.
وبالمثل ، أقوم باختيار PC13 كـ GPIO_Input حتى أتمكن من قراءة حالة زر الضغط الخاص بي.
بدلاً من ذلك ، يمكننا أيضًا تكوين دبابيس من علامة تبويب التثبيت والتكوين كما هو موضح أدناه.
الخطوة 5: في الخطوة التالية ، يمكن للمستخدم ضبط التردد المطلوب للميكروكونترولر والدبابيس وفقًا لمذبذب خارجي وداخلي. بشكل افتراضي ، يتم تحديد مذبذب بلوري داخلي 8 ميجا هرتز وباستخدام PLL ، يتم تحويل هذه 8 إلى 48 ميجا هرتز. بمعنى افتراضي ، ستعمل لوحة STM32 أو وحدة التحكم الدقيقة والدبابيس على 48 ميجا هرتز.
الخطوة 6: انتقل الآن إلى مدير المشروع وأعطِ اسمًا لمشروعك ، وموقع المشروع ، وحدد toolchain أو IDE. نحن هنا نستخدم TrueSTUDIO ، لذلك اخترت نفس الشيء كما هو موضح أدناه.
الخطوة 7: انقر الآن على إنشاء علامة الرمز من خلال الدائرة الحمراء في الصورة أدناه.
الخطوة 8: الآن سترى نافذة منبثقة كما هو موضح ، ثم انقر فوق فتح المشروع. ولكن تأكد من تثبيت TrueSTUDIO قبل هذه الخطوة.
برمجة STM32 Nucleo64 Development Board باستخدام TrueSTUDIO
الآن سيتم فتح الكود أو المشروع الخاص بك في TrueSTUDIO تلقائيًا إذا طلب TrueSTUDIO موقع مساحة العمل ، فقم بتوفير موقع مساحة العمل أو الانتقال إلى الموقع الافتراضي.
سيرى المستخدم الشاشة الموضحة أدناه ثم يحتاج إلى النقر فوق علامة الزاوية باللون الأحمر.
والآن يمكننا رؤية الكود في TreuSTUDIO IDE. على الجانب الأيسر ضمن مجلد "src" يمكننا رؤية ملفات البرامج الأخرى (بامتداد.c) التي تم إنشاؤها بالفعل لنا من STM32Cube. علينا فقط برمجة ملف main.c. حتى في ملف main.c ، سيكون لدينا بالفعل بعض الأشياء التي تم إعدادها لنا بواسطة CubeMX ، وعلينا فقط تعديله ليناسب برنامجنا. الكود الكامل داخل ملف main.c موجود في أسفل هذه الصفحة.
برنامج STM32 Nucleo64 للتحكم في LED باستخدام زر الضغط
نظرًا لأن كل برنامج التشغيل والكود المطلوب يتم إنشاؤه بواسطة STM32CubeMX ، يتعين علينا فقط تكوين دبوس LED كإخراج وزر ضغط كإدخال. يجب كتابة برنامج التحكم في الصمام باستخدام زر الضغط في ملف main.c. يمكن العثور على البرنامج الكامل في أسفل هذه الصفحة. شرح ذلك على النحو التالي
لدينا رمز مكتوب فقط لتبديل مؤشر LED باستخدام زر الضغط. لتحقيق ذلك ، نحدد أولاً دبابيس LED وأزرار الضغط. هنا قمنا بتعريف LED في رقم Pin 5 من PORTA
#define LED_PORT GPIOA # تعريف LED_PIN GPIO_PIN_5
وحدد المفتاح في Pin Number 13 of PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
ثم في الوظيفة الرئيسية ، قمنا بتهيئة جميع الأجهزة الطرفية المستخدمة.
/ * تهيئة كافة الأجهزة الطرفية المكونة * / MX_GPIO_Init () ؛ MX_USART2_Init () ،
ثم اقرأ زر الضغط باستخدام عبارة if وإذا تم العثور على الزر اضغط (LOW) ، فسيقوم LED بتبديل حالته.
بينما (1) {/ * USER CODE END WHILE * / If (! HAL_GPIO_ReadPin (SW_PORT، SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT، LED_PIN) ؛ HAL_Delay (200) ، } / * رمز المستخدم يبدأ 3 * /}
هنا تحتوي وظيفة HAL_GPIO_ReadPin (SW_PORT، SW_PIN) على وسيطتين ، واحدة هي PORT والأخرى عبارة عن دبوس يتم توصيل المحول به ويتم تكوين هذا الدبوس على أنه INPUT أثناء تكوين الأجهزة الطرفية في STM32CubeMX.
تصحيح الأخطاء وتحميل التعليمات البرمجية إلى STM32 Necleo64 Development Board باستخدام TrueSTUDIO
الآن قم بتوصيل اللوحة الخاصة بك بالكمبيوتر باستخدام كابل المبرمج. بمجرد توصيله ، يجب تنزيل برنامج التشغيل المطلوب للوحة تلقائيًا ، ويمكنك التحقق من ذلك باستخدام مدير الجهاز.
بعد ذلك ، اضغط على رمز التصحيح المميز بالدائرة الحمراء في الصورة الموضحة أدناه لتجميع البرنامج والدخول في وضع التصحيح.
في وضع التصحيح ، سيتم تحميل الرمز تلقائيًا. نحتاج الآن إلى تشغيل الكود بالضغط على "استئناف" أو F8 (ملحوظ في الدائرة الحمراء في الصورة أدناه).
الآن يمكننا اختبار التحكم في LED بالضغط على زر الضغط. وفقًا للرمز ، يجب أن يغير مؤشر LED حالته في كل مرة تضغط فيها على زر الضغط. يمكن أيضًا العثور على العمل الكامل في الفيديو المرتبط أسفل هذه الصفحة.
بعد الاختبار ، يمكننا أيضًا إنهاء البرنامج عن طريق الضغط على أيقونة الإنهاء ، المميزة بالدائرة الحمراء في الصورة أدناه.