مقدمة:

سنشرح في هذا المقال طريقة محاكاة وبرمجة متحكِّمات STM32 باستخدام برنامجين Proteus و STM32CubeIDE حيث إننا سنقوم بتصميم دارة لتشغيل وإطفاء ليد (LED) كل نصف ثانيَّة ليكون هذا الشرح مدخلاً لهذا العالم الواسع من المتحكِّمات.

 محاكاة الدارة الإلكترونية على برنامج Proteus

ننشئ مشروع جديد كخطوة أولى ونقوم بتحديد مسار المشروع وإعطاءه اسماً:

نختار باقي الخيارات كالتالي:

نضيف العناصر الإلكترونية المطلوبة إلى مساحة العمل:

نحتاج إلى:

ليد ضوئي من أجل اختبار المتحكِّم.

متحكِّم من نوع STM32F103C6 أو أي متحكِّم تختاره من القائمة.

نوصل العناصر مع بعضها البعض ونضيف التغذية الكهربائية 3.3 فولت وخط الأرضي وبذلك نحصل على الشكل النهائي للدارة كما في الشكل:

برمجة متحكِّم STM32 باستخدام برنامج STM32CubeIDE

ننشئ مشروع جديد وذلك من القائمة File->New->STM32 Project

ننتظر قليلاً حتى تفتح نافذة اختيار المتحكِّم المطلوب:

نكتب اسم المتحكِّم ورقمه ليظهر لدينا جانباً ونقوم باختياره:

بعد ذلك نختار اسماً للمشروع ونضغط على Finish

نضغط على yes للموافقة على عرض نموذج المتحكِّم وننتظر حتى يتم تنزيل الملفات المطلوبة:

نضغط على القطب المطلوب ونحدد حالته كخرج وذلك باختيار GPIO_Output

بعد ذلك نقوم بتفعيل High Speed Clock : من القائمة الجانبية نختار

System Core->RCC->High speed Clock

وهكذا يكون جزء Hardware جاهز للبرمجة ونبدأ بها أولاً بالضغط على زر build والموافقة على توليد الكود البرمجيِّ للمتحكِّم

الكود البرمجي:

لتحميل الكود البرمجي: هنا 

نقوم بكتابة الكود البرمجيِّ للتحكُّم بتشغيل وإطفاء الليد كل نصف ثانيِّة:
نكتب الكود البرمجيِّ التالي ضمن الحلقة اللانهائية While(1):

While(1) {HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);HAL_Delay(500);

}

تُعبِّر التعليمة البرمجية HAL_GPIO_TogglePin عن تبديل حالة القطب بين تشغيل وإطفاء.

أما HAL_Delay تعبر عن التأخير الزمني المطلوب بالميلي ثانيَّة.

ثم تفعيل ملف hex لاستخدامه في برنامج proteus حيث تعد هذه الخطوة من أهم الخطوات:

يتم ذلك من خلال project->properties

من القائمة الجانبية نختار c/c++ Build -> Settings-> MCU Post build outputs ومنها نحدد خيار Convert to Intel Hex file (-O ihex)

نقوم ببناء المشروع مرة أخرى بالضغط على زر Build ونتأكد من خلوه من الأخطاء وبذلك نكون قد حصلنا على ملف hex المطلوب لاستخدامه في المحاكاة.

تشغيل المحاكاة واختبار الدارة

بالعودة إلى برنامج Proteus نضيف الملف البرمجي ذو الامتداد hex الذي تم توليده للمتحكِّم

الآن نشغل المحاكاة ونرى النتيجة النهائية حيث يضيء الليد نصف ثانيِّة وينطفئ نصف ثانيَّة


إعداد: علي حمود. مراجعة: مهند العبيد. تدقيق لغوي: بولا ابراهيم. تصميم: علي العلي.  تحرير: قحطان غانم.