نبذة عامة
Tic-tac-toe هي لعبة يتم لعبها على شبكة 3 × 3 ، على غرار gobang. تحصل على اسمها لأن اللوحة عمومًا لا ترسم حدودًا ويتم ترتيب خطوط الشبكة في tic-tac-toe. الأدوات اللازمة للعبة هي الورق والقلم فقط. بعد ذلك ، يتناوب لاعبان يمثلان O و X لترك علامات على الشبكة. أي ثلاث علامات تشكل خطاً مستقيماً ، وهو الفائز.
هذه المقالة لاستخدام متحكم STM32 وشاشة STONE LCD لتطوير لعبة بسيطة tic-tac-toe.
المواد المطلوبة للتجربة
مبدأ النظام
حدد أول نقرة على الشاشة يجب أن تكون O ، والنقرة الثانية على الشاشة هي X ، وقد تم القيام بهذه الدورة. قم بتعيين 8 صفائف لتخزين عدد O و X في كل صف وعمود وقطري لكل شبكة ، طالما أن هناك ثلاثة من نفس العلامة هي النصر ، فسيكون هناك مربع أحمر وامض لإثبات انتصار صف أو عمود أو قطري ، ثم انقر فوق إعادة تعيين لبدء اللعبة مرة أخرى.
فيما يلي مخطط التدفق:
STM32 وتصميم أجهزة نظام عرض LCD STONE
(أ) شاشة LCD STONE
- تصميم الأجهزة "لعبة تيك تاك تو"
استخدم شاشة STONE LCD لشركة Beijing STONE Technology co. ، ltd ، النموذج هو STWI070WT-01 ، مع شاشة TFT مدمجة وجهاز تحكم باللمس.
- STVC070WT-01 مواصفات المنتج
المعلمة الفيزيائية | |
مقاس | 7 بوصة |
دقة الشاشة | 800 × RGB × 480 |
تباعد بكسل | 0.0642 (عرض) × 0.1790 (ارتفاع) مم |
لون | 262,144 لونًا (18 بت) |
عرض المنطقة | 154.08 (عرض) × 85.92 (ارتفاع) مم |
عرض البعد | 186.4mmx105.5mm |
البعد الشامل | 186.4 ملم × 105.5 ملم × 17.4 ملم (نوع قياسي) 186.4 ملم × 105.5 ملم × 23.8 ملم (مع منفذ إيثرنت) |
الوزن الصافي | 300G |
العرض | |
نوع الإضاءة الخلفية | LED |
سطوع | 300 شمعة / م 2 (يمكن تعديل السطوع في 100 مستوى) |
تباين | 500:1 |
الحياة الخلفية | 300,000 ساعه |
زاوية الرؤية | 70 ° / 70 ° / 50 ° / 70 ° (L / R / U / D) |
لوحة TFT | لوحة صناعة من الدرجة الأولى |
الشاشات التي تعمل باللمس | 4 أسلاك مقاومة اللمس / اللمس بالسعة / بدون شاشة تعمل باللمس |
نمط الشاشة: | رقمي |
المعالج | |
وحدة المعالجة المركزية: | قشرة A8 |
معدل التحديث | 1G هرتز |
معدل الإطار ماكس | شنومكس فبس |
السطح البيني | |
واجهة تسلسلية | مستوى RS232 / RS422 / RS485 / TTL |
واجهة إيثرنت | 10 م / 100 م (اختياري) |
واجهة لاسلكية | واي فاي / بلوتوث (اختياري) |
تنزيل ملف المشروع | منفذ USB2.0 أو قرص تخزين يو |
مزود الطاقة | |
الفولطية | + 12V DC أو + 5V DC |
نطاق الجهد المسموح به | + 7V DC ... + 28V DC أو + 5V DC |
الأعلى. العابرين المسموح بها | + 28V |
الوقت بين عابرين | 50 ثانية كحد أدنى |
الصمامات الداخلية | 2A فتيل الاسترداد الذاتي |
استهلاك الطاقة | 3.0 W |
الظروف المحيطة | |
الأعلى. درجة الحرارة المحيطة المسموح بهاعملية التخزين | -20 ℃ ~ + 70 -30 ℃ ~ + 80 |
الرطوبة النسبيةعملية التخزين | 55 ، 85٪ 60 ℃ ، 90٪ |
تحميل الصدمةعملية التخزين | 15 جم / 11 مللي ثانية 25 جم / 6 مللي ثانية |
اهتزازعملية التخزين | 0.035 ملم (10-58 هرتز) / 1 جرام (58-500 هرتز) 3.5 ملم (5-8,5 هرتز) / 1 جرام (8.5 - 500 هرتز) |
الضغط الجويعملية التخزين | من 706 إلى 1030 hPa.581 إلى 1030 hPa |
مناعة ضد الضوضاء | |
تفريغ ثابت (تفريغ التلامس / تفريغ الهواء) | EN 61000-4-2 6 كيلو فولت / 8 كيلو فولت |
تشعيع الترددات اللاسلكية | EN 61000-4-310 فولت / م ، 80٪ AM1 كيلوهرتز |
تعديل النبض | ENV 50204900 ميجا هرتز ± 5 ميجا هرتز 10 فولت / دقيقة ، 50٪ ED ، 200 هرتز |
توصيل الترددات اللاسلكية | EN 61000-4-6150 كيلوهرتز - 80 ميجا هرتز 10 فولت ، 80٪ صباحًا ، 1 كيلوهرتز |
انفجار التداخل ، خطوط الإمداد ، معالجة خطوط البيانات ، خطوط الإشارة | EN 61000-4-42kV2kV1kV |
جهاز دعم | |
منفذ UART | دعم RS232 / RS422 / RS485 / TTL |
منفذ الشبكة | دعم منفذ إيثرنت / واي فاي / بلوتوث |
ذاكرة متنقله | دعم قياسي 256 ميجابايت ، توسيع 1 جيجابايت أو 2 جيجابايت |
صفارة | الدعم الفني |
RTC | الدعم الفني |
منفذ USB | SupportOnline تنزيل بواسطة كابل USB |
واجهة قرص التخزين | Support.Offline تنزيل أو نسخ بيانات المستخدم |
الشاشات التي تعمل باللمس | 4 مقاومة الأسلاك / بالسعة |
خط متجه | تنسيق TTF القياسي |
صورة | دعم تنسيق PNG / JPG / BMP / SVG / GIF |
واجهة الصوت | دعم تنسيق WAV طول ملف الصوت الفردي غير محدود ، نظريًا يصل إلى 4096 ملف صوتي ، قوة السماعة 8 أوم 2 واط أو 4 أوم 3 واط |
مجموعة الأوامر | مجموعات الأوامر الموحدة المبسطة |
مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء | |
ذاكرة متنقله | قياسي 256 ميجابايت ، ملحق 1 جيجابايت أو 2 جيجابايت |
مقدار الذاكرة للصورة | وفقًا لإمكانية الصورة ، اقترح تنسيق "PNG ، BMP ، JPG ، SVG ، GIF". |
(ب) لوحة STM32
باستخدام لوحة STM32 ، تكون شريحة STM32 هي CKS32F303.
تم تصميم عائلة STM32 من نوى ARM Cortex-M0 و M0 + و M3 و M4 و M7 للتطبيقات المضمنة التي تتطلب أداءً عاليًا وتكلفة منخفضة واستهلاكًا منخفضًا للطاقة.
- 2.0V-3.6V امدادات الطاقة
- 5V دبابيس I / O متوافقة
- وضع الساعة الآمن الممتاز
- وضع الطاقة المنخفضة مع وظيفة الإيقاظ
- مذبذب RC داخلي
- إعادة تعيين الدائرة المضمنة
- نطاق الحرارة الشغالة.
- -40 درجة مئوية إلى + 85 درجة مئوية أو 105 درجة مئوية
تصميم برمجيات النظام
عملية تطوير شاشة STM32 و STONE LCD
1: إنشاء المشروع وتحميل الصور المطلوبة في المشروع.
2: استخدام برنامج مصمم الحجر لإنشاء علاقات مرتبطة ديناميكيًا ؛ الضوابط الرئيسية هي: "زر" ، "صورة" ؛
3: محاكاة البرامج وتجميعها لإنشاء ملفات قابلة للتنفيذ.
4: شاشة LCD متصلة بجهاز الكمبيوتر عبر USB ونسخ الملف القابل للتنفيذ إلى الشاشة.
قم أولاً بإنشاء مشروع جديد كما هو موضح أدناه.
ثانيًا ، قم باستيراد جميع الصور إلى المورد
بعد ذلك ، قم بتعيين عناصر التحكم في الأزرار لكل شبكة واجعل الأزرار غير مرئية.
لا تنسى ضبط زر إعادة الضبط!
يظهر التأثير النهائي أدناه:
بعد ذلك ، أضف عناصر تحكم الصورة إلى كل شبكة بنفس الطريقة ، واضبطها جميعًا على صور بيضاء.
أخيرًا ، أضف عنصر تحكم gif واضبطه على غير مرئي.
أجزاء التأثير النهائي موضحة أدناه:
مخطط توصيل الدائرة
مشاركه الرمز
/* يشمل ----------------------*/
# تضمين "stm32f0xx_hal.h"
# تضمين "Uart.h"
# تضمين "string.h"
# تضمين "ws2812.h"
# تضمين "IWDG.h"
RGB_COLOR USER_RGB_COLOR ،
حرف TX_Mode غير موقّع = 1 ؛ // بت علم نوع الإرسال 1: 232 0: TTL
حرف غير موقّع BLINK_2 = 0 ؛
حرف غير موقّع RX3_BUF [32] ؛ // تخصيص المخزن المؤقت للاستقبال من ثلاثة مستويات
# تعريف الزر 1 0x81
# تعريف الزر 2 0x82
# تعريف الزر 3 0x83
# تعريف الزر 4 0x84
# تعريف الزر 5 0x85
# تعريف الزر 6 0x86
# تعريف الزر 7 0x87
# تعريف الزر 8 0x88
# تعريف الزر 9 0x89
#تعريف BUTTON0 0x8A
#define واضح 0x8E
int r_flag1 = 0 ؛
غير موقعة int quan [4] [2] = {0} ؛
int cha [4] [2] = {0} ،
int quan_hang1 = 0 ؛
int quan_hang2 = 0 ؛
int quan_hang3 = 0 ؛
int quan_lie1 = 0 ؛
int quan_lie2 = 0 ؛
int quan_lie3 = 0 ؛
int quan_zuoxia = 0 ؛
int quan_youxia = 0 ؛
int cha_hang1 = 0 ؛
int cha_hang2 = 0 ؛
int cha_hang3 = 0 ؛
cha_lie1 int غير موقعة = 0 ؛
cha_lie2 int غير موقعة = 0 ؛
cha_lie3 int غير موقعة = 0 ؛
cha_zuoxia int غير الموقعة = 0 ؛
cha_youxia int غير الموقعة = 0 ؛ // غير موقعة int r_flag10 = 0 ؛
SystemClock_Config باطل (باطل) ؛
باطل Error_Handler (باطل) ؛
MX_GPIO_Init الفراغ الثابت (باطل) ؛
int الرئيسي (باطل)
{
uint8_t color_buf = 0 ؛
// اختيار الوظيفة
/ * إعادة تعيين كافة الأجهزة الطرفية ، تهيئة واجهة الفلاش ونظام Systick. * /
HAL_Init () ،
/ * تكوين ساعة النظام * /
SystemClock_Config () ،
/ * تهيئة كافة الأجهزة الطرفية المكونة * /
MX_GPIO_Init () ،
TX_Mode = HAL_GPIO_ReadPin (GPIOA ، GPIO_PIN_4) ،
إذا (TX_Mode)
MX_USART1_UART_Init () ،
// 232 تهيئة
آخر
MX_USART1_UART_Init2 () ،
// تهيئة TTl
بينما (1)
{
إذا كان (TX_Mode! = HAL_GPIO_ReadPin (GPIOA ، GPIO_PIN_4))
HAL_NVIC_SystemReset () ،
// عكس الطائر وإعادة التشغيل وإعادة التهيئة
إذا (MNG_USART1.RX_OVER_FLG == TRUE)
//
تتلقى البيانات التسلسلية بت العلم
{
RX3_BUF [0] = MNG_USART1.RX_BUF [7] ،
// الطريقة 2: احصل على اسم التحكم بطول ثابت
RX3_BUF [1] = MNG_USART1.RX_BUF [8] ،
RX3_BUF [2] = MNG_USART1.RX_BUF [9] ،
RX3_BUF [3] = MNG_USART1.RX_BUF [10] ،
RX3_BUF [4] = MNG_USART1.RX_BUF [11] ،
RX3_BUF [5] = MNG_USART1.RX_BUF [12] ،
RX3_BUF [6] = MNG_USART1.RX_BUF [13] ،
//RX3_BUF[7]=MNG_USART1.RX_BUF [14] ؛
إذا ((strcmp (“button1”، (حرف ثابت *) RX3_BUF)) == 0)
// حدد التحكم
{
color_buf = BUTTON1 ،
}
إذا ((strcmp (“button2”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON2 ،
}
إذا ((strcmp (“button3”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON3 ،
}
إذا ((strcmp (“button4”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON4 ،
}
إذا ((strcmp (“button5”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON5 ،
}
إذا ((strcmp (“button6”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON6 ،
}
إذا ((strcmp (“button7”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON7 ،
}
إذا ((strcmp (“button8”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON8 ،
}
إذا ((strcmp (“button9”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON9 ،
}
إذا ((strcmp (“button0”، (حرف ثابت *) RX3_BUF)) == 0)
{
color_buf = BUTTON0 ،
}
التبديل (color_buf)
{
الحالة BUTTON1:
// إذا (r_flag1 == 0)
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
r_flag1 ^ = 1 ؛
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image2 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 ^ = 1 ؛
quan_hang1 ++ ؛
quan_lie1 ++ ؛
quan_youxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
//memset(MNG_USART1.RX_BUF،0،USART1_RX_LEN) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image2 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang1 ++ ؛
cha_lie1 ++ ؛
cha_youxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
// r_flag1 = 1 ؛
كسر؛
الحالة BUTTON2:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image3 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang1 ++ ؛
quan_lie2 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image3 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang1 ++ ؛
cha_lie2 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON3:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image4 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang1 ++ ؛
quan_lie3 ++ ؛
quan_zuoxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image4 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang1 ++ ؛
cha_lie3 ++ ؛
cha_zuoxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON4:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image5 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang2 ++ ؛
quan_lie1 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
// r_flag10 = 1 ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image5 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang2 ++ ؛
cha_lie1 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON5:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image6 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang2 ++ ؛
quan_lie2 ++ ؛
quan_zuoxia ++ ؛
quan_youxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image6 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang2 ++ ؛
cha_lie2 ++ ؛
cha_zuoxia ++ ؛
cha_youxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON6:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image7 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang2 ++ ؛
quan_lie3 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image7 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang2 ++ ؛
cha_lie3 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON7:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image8 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang3 ++ ؛
quan_lie1 ++ ؛
quan_zuoxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image8 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang3 ++ ؛
cha_lie1 ++ ؛
cha_zuoxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON8:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image9 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang3 ++ ؛
quan_lie2 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image9 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang3 ++ ؛
cha_lie2 ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON9:
إذا ((r_flag1 == 0) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image10 \ ”، \” image \ ”: \” دائرة \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 1 ؛
quan_hang3 ++ ؛
quan_lie3 ++ ؛
quan_youxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
else if ((r_flag1 == 1) && (MNG_USART1.RX_BUF [14] == 0x02))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image10 \ ”، \” image \ ”: \” x \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
r_flag1 = 0 ؛
cha_hang3 ++ ؛
cha_lie3 ++ ؛
cha_youxia ++ ؛
// memset (RX3_BUF ، 0,7،XNUMX) ؛
color_buf = واضح ،
}
كسر؛
الحالة BUTTON0:
r_flag1 = 0 ؛
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image2 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image3 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image4 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image5 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image6 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image7 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image8 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image9 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_image \ ”، \” type \ ”: \” image \ ”، \” widget \ ”: \” image10 \ ”، \” image \ ”: \” bai \ ”}> ET”) ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif4 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif5 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif6 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif7 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif8 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif9 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif10 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif11 \ ”، \” visual \ ”: false}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
// memset (RX3_BUF ، 0,7،XNUMX) ؛
memset (MNG_USART1.RX_BUF، 0، USART1_RX_LEN) ،
كسر؛
الافتراضي:
MNG_USART1.RX_OVER_FLG = FALSE ،
كسر؛
}
////////////////////////////////////////////////// //////////////////
إذا ((quan_hang1 == 3) || (cha_hang1 == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif4 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
آخر إذا ((quan_hang2 == 3) || (cha_hang2 == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif5 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
آخر إذا ((quan_hang3 == 3) || (cha_hang3 == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif6 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
آخر إذا ((quan_lie1 == 3) || (cha_lie1 == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif7 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
آخر إذا ((quan_lie2 == 3) || (cha_lie2 == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif8 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
آخر إذا ((quan_lie3 == 3) || (cha_lie3 == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif9 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
وإلا إذا ((quan_zuoxia == 3) || (cha_zuoxia == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif11 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
وإلا إذا ((quan_youxia == 3) || (cha_youxia == 3))
{
memset (MNG_USART1.TX_BUF، 0، USART1_TX_LEN) ،
sprintf ((char *) MNG_USART1.TX_BUF ،
“ST <{\” cmd_code \ ”: \” set_visible \ ”، \” type \ ”: \” widget \ ”، \” widget \ ”: \” gif10 \ ”، \” visual \ ”: true}> ET ") ؛
MNG_USART1.TX_Byte_Num = strlen ((حرف مستمر *) MNG_USART1.TX_BUF) ،
USART_TX_Data (MNG_USART1) ،
quan_hang1=quan_hang2=quan_hang3=cha_hang1=cha_hang2=cha_hang3=0;
quan_lie1=quan_lie2=quan_lie3=cha_lie1=cha_lie2=cha_lie3=0;
quan_zuoxia = quan_youxia = cha_zuoxia = cha_youxia = 0 ؛
}
MNG_USART1.RX_OVER_FLG = FALSE ،
}
}
}
/ ** تكوين ساعة النظام
*/
SystemClock_Config باطل (باطل)
{
RCC_OscInitTypeDef RCC_OscInitStruct ؛
RCC_ClkInitTypeDef RCC_ClkInitStruct ؛
RCC_PeriphCLKInitTypeDef PeriphClkInit ؛
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI ؛
RCC_OscInitStruct.HSIState = RCC_HSI_ON ،
RCC_OscInitStruct.HSICalibrationValue = 16 ؛
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON ،
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI ،
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL12 ،
RCC_OscInitStruct.PLL.PREDIV = RCC_PREDIV_DIV1 ،
إذا (HAL_RCC_OscConfig (& RCC_OscInitStruct)! = HAL_OK)
{
معالج الأخطاء()؛
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1 ؛
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ،
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1 ،
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1 ،
إذا (HAL_RCC_ClockConfig (& RCC_ClkInitStruct ، FLASH_LATENCY_1)! = HAL_OK)
{
معالج الأخطاء()؛
}
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1 ؛
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1 ،
إذا (HAL_RCCEx_PeriphCLKConfig (& PeriphClkInit)! = HAL_OK)
{
معالج الأخطاء()؛
}
HAL_SYSTICK_Config (HAL_RCC_GetHCLKFreq () / 1000) ،
HAL_SYSTICK_CLKSourceConfig (SYSTICK_CLKSOURCE_HCLK) ،
/ * تكوين مقاطعة SysTick_IRQn * /
HAL_NVIC_SetPriority (SysTick_IRQn، 0، 0) ،
}
/ ** تكوين Pinout
*/
MX_GPIO_Init الفراغ الثابت (باطل)
{
GPIO_InitTypeDef GPIO_InitStruct ؛
/ * تمكين ساعة منافذ GPIO * /
__HAL_RCC_GPIOA_CLK_ENABLE () ،
GPIO_InitStruct.Pin = GPIO_PIN_7 ،
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP ،
GPIO_InitStruct.Pull = GPIO_PULLDOWN ،
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH ،
HAL_GPIO_Init (GPIOA ، & GPIO_InitStruct) ؛
GPIO_InitStruct.Pin = GPIO_PIN_4 ،
GPIO_InitStruct.Mode = GPIO_MODE_INPUT ،
GPIO_InitStruct.Pull = GPIO_PULLUP ،
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH ،
HAL_GPIO_Init (GPIOA ، & GPIO_InitStruct) ؛
}
/ * رمز المستخدم يبدأ 4 * /
/ * نهاية رمز المستخدم 4 * /
/ **
*brief يتم تنفيذ هذه الوظيفة في حالة حدوث خطأ.
*param بلا
*retval بلا
*/
باطل Error_Handler (باطل)
{
/ * بدء رمز المستخدم Error_Handler * /
/ * يمكن للمستخدم إضافة التنفيذ الخاص به للإبلاغ عن حالة إرجاع خطأ HAL * /
بينما (1)
{
}
/ * USER CODE END Error_Handler * /
}
#ifdef استخدم_FULL_ASSERT
/ **
*brief يعرض اسم الملف المصدر ورقم سطر المصدر
* حيث حدث خطأ assert_param.
*param file: مؤشر إلى اسم الملف المصدر
*param line: رقم مصدر خطأ assert_param
*retval بلا
*/
assert_failed باطل (ملف uint8_t * ، سطر uint32_t)
{
/ * رمز المستخدم يبدأ 6 * /
/ * يمكن للمستخدم إضافة التنفيذ الخاص به للإبلاغ عن اسم الملف ورقم السطر ،
مثال: printf ("قيمة المعلمات الخاطئة: الملف٪ s في السطر٪ d \ r \ n" ، ملف ، سطر) * /
/ * نهاية رمز المستخدم 6 * /
}
#endif
/ **
* @}
*/
/ **
* @}
*/
/ ************************** (C) COPYRIGHT STMicroelectronics ***** نهاية الملف **** /
تظهر النتائج النهائية
المصدر: أفلاطون داتا إنتليجنس