تجارب بسيطة مع متحكم STM32F103 (الجهاز اللوحي الأزرق)



اكتسب الكثير منها "حبة زرقاء" لمحاولة. ولكن بسبب تعقيد البرمجة ، كان هذا الشيء في مكان ما على الرف ، حتى أوقات أفضل.

سوف نعتبر أن "أفضل الأوقات" قد وصلت.

ما هو ضروري للتجارب:


  • خردوات
  • البرمجيات

خردوات


يمكن شراء جميع الأجزاء / المكونات المستخدمة على aliexpress.com

  • بالطبع ، أولاً وقبل كل شيء ، وحدة التحكم نفسها. "Blue Tablet"
  • محول USB-UART
  • كابل USB الصغير
  • مجموعة من الأسلاك لربط المكونات مع بعضها البعض

يوصى باستخدام مبرمج ST-Link V2 بشكل أسرع ، مقارنةً بـ UART ، وتحميل "البرامج الثابتة" وتصحيح البرامج

البرمجيات



ما هي الوحدة؟


الوحدة النمطية هي مزيج من الأجهزة والبرامج. جزء الجهاز هو "الجهاز اللوحي" STM32F103C8T6 ، وجزء البرنامج هو "قالب البرنامج الثابت" الذي تم إنشاؤه باستخدام برنامج MIOC ، وهذا البرنامج مفتوح المصدر .

منافذ متحكم


متحكم لديه دبابيس أو الساقين. بعضها من قوة متحكم ، وبعضها له غرض خاص (على سبيل المثال ، إعادة تعيين) ، جزء منها واجهة الإدخال / الإخراج للأغراض العامة (المهندس GPIO).

يتم تجميع المنافذ (A ، B ، C ...). تحتوي كل مجموعة على ما يصل إلى 16 منفذًا ، مرقمة من 0 إلى 15. ونتيجة لذلك ، يبدو ترقيم المنفذ مثل PA0 ، PA1 ، ...

تُستخدم المنافذ للاتصال بين مكونات الوحدة ، على سبيل المثال ، المعالج الدقيق والأجهزة الطرفية المختلفة. يمكن أن تعمل المنافذ كمدخلات ومخرجات وثنائية الاتجاه.

تتميز اللوحة "اللوحية" بالمنافذ.

GPIO - للأغراض العامة I / O واجهة


في وحدة IO ، يتم عرض الأنواع الرئيسية من المنافذ في الجدول:



كأجهزة استشعار ، مشغلات سوف نستخدم أجهزة مختلفة من اردوينو.

برنامج MIOC (وحدة تكوين المدخلات والمخرجات)


باستخدام هذا البرنامج ، نقوم بإنشاء / تكوين قالب البرنامج الثابت (مشروع لـ Embitz؛ Keil) من وحدة IO. المثبت لا يتطلب. تحميل ، تشغيل. باستخدام هذا البرنامج ، نقوم بإنشاء متغيرات عالمية سنستخدمها في البرامج الثابتة الخاصة بنا. يمكن ربط المتغيرات بالمنافذ.

نافذة التشغيل الأولى:



إنشاء مشروع:



حدد مجلد للمشروع. مجلد ، لهذا المشروع يجب أن تكون فارغة!







البرنامج الأول - "كلمة مرحبا" ل متحكم


نغمض مصباح LED الموجود على "الحبة الزرقاء". هذا الصمام متصل بمنفذ PC13.

أضف صفًا إلى جدول متغير





إنشاء رمز BSP (الزر F8)



علاوة على ذلك ، في كل مرة بعد تغيير المشروع ، مطلوب توليد BSP!

افتح المشروع الذي تم إنشاؤه في بيئة تطوير EmBitz أو Keil. لا يزال EmBitz حلاً. يبدو أن المؤلف تخلى عن هذا المشروع. على الأرجح في المستقبل ، سيستخدم المشروع Code :: Blocks.

في الملف main.c ، اكتب ما يلي:


(لزيادة حجم الصورة ، افتحها في علامة تبويب جديدة)

في EmBitz ، اضغط F2 ، بعد ظهور نافذة المعلومات ، اضغط F7. يجب أن يتم التجميع.

سيؤدي الضغط على F2 مرة أخرى إلى إخفاء إشارات المعلومات.



قم بالتحميل إلى متحكم ، انظر كيف يعمل.

زر


أضف زرًا ، على سبيل المثال هذا:



مخطط الأسلاك:



إضافة متغير إلى الجدول:



نحن نولد BSP.

تغيير البرنامج إلى ما يلي:



نقوم بإنشاء BSP (F8) جديد ، تجميعه ، تحميله في متحكم.

نضغط على الزر - يضيء مصباح LED ويصدر - يخرج.

بدلاً من مؤشر LED ، يمكن توصيل مرحل بمنفذ آخر ، على سبيل المثال:



وإدارة نوع من الحمولة.

رسائل الإخراج إلى وحدة التحكم


تحتاج إلى تحديد ما سيكون وحدة التحكم.

الخيارات هي:

  • محول USB-UART
  • منفذ COM الظاهري (كابل Micro-USB)

إذا تم تحديد كل من UART1 و USB كوحدة تحكم في التكوين ، ولم يتم تحديد USB VCP ، فسيتم تعيين وحدة التحكم في أي مكان. أي لن يكون هناك قسم في وظيفة print_str (أو ماكرو الطباعة) ، ولكن لن يكون هناك إخراج أيضًا. سيكون نفس السلوك إذا لم تقم بتحديد أي واجهة ، أو حدد USB VCP لكنك لم تحدد UART1 أو USB كوحدة تحكم.

تكوين وحدة التحكم:



قم بتوصيل TettaTerm بمنفذ COM (وحدة التحكم). إذا قمنا بتنزيل البرنامج الثابت عبر UART1 ، فلا تنسَ فصل / توصيل منفذ COM. في TerraTerm "الأزرار الساخنة" Alt + I ؛ Alt + N هذا غير مطلوب لخيار التمهيد عبر ST-Link.

تحرير البرنامج:



الآن سوف تعرض وحدة التحكم حالة الزر:



DS18B20


قم بتوصيل مستشعر درجة حرارة DS18B20 بـ "الجهاز اللوحي".



ضع المتغير في الجدول:



تغيير البرنامج إلى ما يلي:



نخلق تكوين جديد ، ترجمة ، تحميله في متحكم.

ستقوم وحدة التحكم بعرض درجة الحرارة المقاسة بواسطة المستشعر.



ADC


كمثال على العمل مع ADC ، يمكنك استخدام مقياس الجهد:



أو استشعار رطوبة التربة



دعونا نتحدث عن آخر واحد:

تكوين المنفذ:



تحرير البرنامج:



نحن تجميع ، تحميل.

في وحدة التحكم نلاحظ:



ADC - قراءة ADC الحالية. الحد الأقصى والحد الأدنى - قراءات الاستشعار الدنيا والقصوى المسجلة ، جافة تمامًا (0٪) ورطبة جدًا (100٪).

مبلل جدًا (100٪) - ضع المستشعر في كوب من الماء. جاف جدا (0 ٪) - يكمن في الهواء الطلق.

في الواقع ، قمنا بمعايرة مستشعر رطوبة التربة من 0 إلى 100٪. نضع القيم القصوى والدنيا في نص البرنامج.



نتيجة العمل. يتم وضع المستشعر في وعاء وعاء الزهور:



هذا المشروع هو قالب الحل لمحطات الري.

هذا كل شيء الآن. سيتم تجديد برنامج MIOC بميزات إضافية.

Source: https://habr.com/ru/post/ar466663/


All Articles