สรุป
Tic-tac-toe เป็นเกมที่เล่นบนตาราง 3 คูณ 3 คล้ายกับ gobang มันได้ชื่อมาเพราะโดยทั่วไปแล้วบอร์ดจะไม่วาดเส้นขอบและเส้นกริดจะถูกจัดเรียงเป็นโอเอกซ์ เครื่องมือที่จำเป็นสำหรับเกมมีเพียงกระดาษและปากกาเท่านั้น จากนั้น ผู้เล่นสองคนที่เป็นตัวแทนของ O และ X ผลัดกันทำเครื่องหมายบนตาราง เครื่องหมายสามอันใด ๆ รวมกันเป็นเส้นตรง ซึ่งเป็นผู้ชนะ
บทความนี้เป็นการใช้ไมโครคอนโทรลเลอร์ STM32 และจอแสดงผล STONE LCD เพื่อพัฒนาเกมโอเอกซ์อย่างง่าย
วัสดุที่จำเป็นสำหรับการทดลอง
หลักการของระบบ
ระบุการแตะหน้าจอครั้งแรกต้องเป็น O การแตะครั้งที่สองบนหน้าจอคือ X ทำมาเป็นวงจรแบบนี้ กำหนด 8 อาร์เรย์เพื่อเก็บจำนวน O และ X ในแต่ละแถว คอลัมน์ และเส้นทแยงมุมของแต่ละตาราง ตราบใดที่มีเครื่องหมายชัยชนะเหมือนกัน XNUMX อัน ก็จะมีกล่องสีแดงกะพริบเพื่อพิสูจน์ชัยชนะของ แถว คอลัมน์ หรือแนวทแยง แล้วแตะรีเซ็ตเพื่อเริ่มเกมอีกครั้ง
ต่อไปนี้เป็นแผนภูมิการไหล:
การออกแบบฮาร์ดแวร์ระบบแสดงผล LCD STM32 และ STONE
(A) จอแสดงผล STONE LCD
- การออกแบบฮาร์ดแวร์ "เกม Tic-tac-toe"
ใช้จอแสดงผล STONE LCD ของ Beijing STONE Technology co., ltd รุ่นคือ STWI070WT-01 พร้อมจอแสดงผล TFT ในตัวและตัวควบคุมแบบสัมผัส
- STVC070WT-01 คุณสมบัติของสินค้า
พารามิเตอร์ทางกายภาพ | |
ขนาด | 7 นิ้ว |
ความละเอียด | 800×RGB×480 |
ระยะห่างระหว่างพิกเซล | 0.0642 (W) × 0.1790 (H) มม |
สี | 262,144 สี (18 บิต) |
พื้นที่ดู | 154.08 (W) × 85.92 (H) มม |
จอแสดงผลขนาด | 186.4mmx105.5mm |
มิติข้อมูลโดยรวม | 186.4mmx105.5mmx17.4mm (ชนิดมาตรฐาน) 186.4mmx105.5mmx23.8mm (พร้อมพอร์ต Ethernet) |
น้ำหนักสุทธิ | 300g |
แสดง | |
Backlight ประเภท | LED |
ความสว่าง | 300cd/m2(ความสว่างปรับได้ 100 ระดับ) |
ตรงกันข้าม | 500:1 |
อายุการใช้งานแบ็คไลท์ | ชั่วโมง 300,000 |
มุมมอง | 70 °/70 °/50 °/70 °(L/R/U/D) |
แผง TFT | แผงอุตสาหกรรมระดับ |
หน้าจอสัมผัส | 4 สัมผัสความต้านทานของสาย / สัมผัสแบบ Capacitive / ไม่มีหน้าจอสัมผัส |
โหมดหน้าจอ: | ดิจิตอล |
หน่วยประมวลผล | |
ซีพียู | A8 Cortex |
อัตราการรีเฟรช | 1G Hz |
อัตราเฟรมสูงสุด | FPS 60 |
อินเตอร์เฟซ | |
เชื่อมต่อแบบอนุกรม | RS232 / RS422 / RS485 / TTL ระดับ |
อินเตอร์เฟซอีเธอร์เน็ต | 10M / 100M (อุปกรณ์เสริม) |
อินเตอร์เฟซไร้สาย | Wi-Fi / Bluetooth (อุปกรณ์เสริม) |
ดาวน์โหลดไฟล์โครงการ | พอร์ต USB2.0 หรือ U storage Disk |
พาวเวอร์ซัพพลาย | |
แรงดันไฟฟ้า | +12V DC หรือ +5V DC |
ช่วงแรงดันไฟฟ้าที่อนุญาต | +7V DC…+28V DC หรือ +5V DC |
แม็กซ์ ชั่วคราวที่อนุญาต | + 28V |
เวลาระหว่างสองชั่วขณะ | ขั้นต่ำ 50 วินาที |
ฟิวส์ภายใน | 2A ฟิวส์การกู้คืนตัวเอง |
การใช้พลังงาน | W 3.0 |
สภาพแวดล้อม | |
แม็กซ์ อุณหภูมิแวดล้อมที่อนุญาตปฏิบัติการสตอเรจ | -20°C~ +70°C-30°C~ +80°C |
ความชื้นสัมพัทธ์ปฏิบัติการสตอเรจ | 55°C,85%60°C,90% |
โหลดช็อตปฏิบัติการสตอเรจ | 15 ก./11 มิลลิวินาที25 ก./6 มิลลิวินาที |
การสั่นสะเทือนปฏิบัติการสตอเรจ | 0.035 มม. (10 – 58 Hz)/ 1 ก. (58 – 500 Hz)3.5 มม. (5 – 8,5 Hz)/ 1 ก. (8.5 – 500 Hz) |
ความกดอากาศปฏิบัติการสตอเรจ | 706 ถึง 1030 hPa581 ถึง 1030 hPa |
ภูมิคุ้มกันเสียงรบกวน | |
การคายประจุไฟฟ้าสถิตย์ (การคายประจุแบบสัมผัส/การคายอากาศ) | EN 61000-4-2 6 กิโลโวลต์/8 กิโลโวลต์ |
การฉายรังสี RF | EN 61000-4-310 V/ม., 80% AM1 กิโลเฮิรตซ์ |
การปรับพัลส์ | ENV 50204900 MHz ±5 MHz10 V/ช่าง, 50% ED, 200 Hz |
การนำ RF | EN 61000-4-6150 kHz – 80 MHz10 V, 80% AM, 1 kHz |
การรบกวนแบบต่อเนื่อง สายจ่ายไฟ สายประมวลผลข้อมูล สายสัญญาณ | EN 61000-4-42kV2kV1kV |
อุปกรณ์สนับสนุน | |
พอร์ต UART | รองรับ RS232 / RS422 / RS485 / TTL |
พอร์ตเครือข่าย | รองรับพอร์ตอีเธอร์เน็ต / Wi-Fi / บลูทูธ |
หน่วยความจำแฟลช | รองรับ Standard 256MB, Extend 1GB หรือ 2GB |
ออด | ระบบขอใช้บริการ |
RTC | ระบบขอใช้บริการ |
พอร์ต USB | สนับสนุนดาวน์โหลดออนไลน์ด้วยสาย USB |
อินเตอร์เฟสดิสก์หน่วยเก็บข้อมูล U | Support.Offline ดาวน์โหลดหรือคัดลอกข้อมูลผู้ใช้ |
หน้าจอสัมผัส | ความต้านทานสาย 4 / Capacitive |
แบบอักษรเวกเตอร์ | รูปแบบ TTF มาตรฐาน |
ภาพ | รองรับรูปแบบ PNG/JPG/BMP/SVG/GIF |
อินเตอร์เฟซเสียง | รองรับรูปแบบ WAVไม่จำกัดความยาวของไฟล์เสียงเดียว ตามทฤษฎีแล้วสามารถบันทึกไฟล์เสียงได้สูงสุด 4096 ไฟล์ กำลังขับของลำโพงอยู่ที่ 8 โอห์ม 2 วัตต์ หรือ 4 โอห์ม 3 วัตต์ |
ชุดคำสั่ง | ชุดคำสั่งรวมแบบง่าย |
หน่วยความจำ | |
หน่วยความจำแฟลช | มาตรฐาน 256MB, ส่วนขยาย 1GB หรือ 2GB |
จำนวนหน่วยความจำสำหรับรูปภาพ | ตามความสามารถของภาพ แนะนำรูปแบบ “PNG, BMP, JPG, SVG, GIF” |
(B) บอร์ด STM32
ใช้บอร์ด STM32 ชิปของ STM32 คือ CKS32F303
ตระกูล STM32 ของคอร์ ARM Cortex-M0, M0+, M3, M4 และ M7 ได้รับการออกแบบมาสำหรับการใช้งานแบบเอ็มเบ็ดเด็ดที่ต้องการประสิทธิภาพสูง ต้นทุนต่ำ และใช้พลังงานต่ำ
- แหล่งจ่ายไฟ 2.0V-3.6V
- พิน I/O ที่รองรับ 5V
- โหมดนาฬิกาที่ปลอดภัยที่ยอดเยี่ยม
- โหมดพลังงานต่ำพร้อมฟังก์ชันปลุก
- ออสซิลเลเตอร์ RC ภายใน
- วงจรรีเซ็ตในตัว
- ช่วงอุณหภูมิในการทำงาน
- -40°C ถึง +85°C หรือ 105°C
การออกแบบซอฟต์แวร์ระบบ
ขั้นตอนการพัฒนาจอแสดงผล STM32 และ STONE LCD
1: สร้างโครงการและโหลดรูปภาพที่ต้องการลงในโครงการ
2: ใช้ซอฟต์แวร์ Stone-designer เพื่อสร้างความสัมพันธ์ที่เชื่อมโยงแบบไดนามิก ตัวควบคุมหลักคือ: "ปุ่ม", "รูปภาพ";
3: การจำลองซอฟต์แวร์และการคอมไพล์เพื่อสร้างไฟล์ปฏิบัติการ
4: หน้าจอ LCD เชื่อมต่อกับพีซีผ่าน USB และคัดลอกไฟล์ปฏิบัติการไปยังหน้าจอ
ขั้นแรกให้สร้างโครงการใหม่ตามที่แสดงด้านล่าง
ประการที่สอง นำเข้ารูปภาพทั้งหมดลงในทรัพยากร
จากนั้น ตั้งค่าการควบคุมปุ่มให้กับแต่ละตารางและทำให้มองไม่เห็นปุ่มต่างๆ
อย่าลืมตั้งค่าปุ่มรีเซ็ต!
เอฟเฟ็กต์ที่เสร็จแล้วแสดงอยู่ด้านล่าง:
หลังจากนั้น ให้เพิ่มตัวควบคุมรูปภาพลงในแต่ละกริดด้วยวิธีเดียวกัน และตั้งค่าให้เป็นรูปภาพสีขาวทั้งหมด
สุดท้ายเพิ่มการควบคุม gif และตั้งค่าให้มองไม่เห็น
ส่วนต่าง ๆ ของเอฟเฟกต์สำเร็จรูปแสดงไว้ด้านล่าง:
แผนภาพการเชื่อมต่อวงจร
การแชร์รหัส
/* รวมถึง ----------------------*/
#รวมถึง “stm32f0xx_hal.h”
#รวม “Uart.h”
#รวม “string.h”
#รวมถึง “ws2812.h”
#รวมถึง “IWDG.h”
RGB_COLOR ผู้ใช้_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
#กำหนดปุ่ม0 0x8A
#define ชัดเจน 0x8E
int ที่ไม่ได้ลงชื่อ r_flag1 = 0;
int quan[4][2]={0};
int cha [4][2]={0};
int ที่ไม่ได้ลงนาม qua_hang1 = 0;
int ที่ไม่ได้ลงนาม qua_hang2 = 0;
int ที่ไม่ได้ลงนาม qua_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;
int ที่ไม่ได้ลงนาม cha_lie1 = 0;
int ที่ไม่ได้ลงนาม cha_lie2 = 0;
int ที่ไม่ได้ลงนาม cha_lie3 = 0;
int ที่ไม่ได้ลงนาม cha_zuoxia = 0;
int ที่ไม่ได้ลงนาม cha_youxia = 0; // int ที่ไม่ได้ลงนาม r_flag10 = 0;
เป็นโมฆะ SystemClock_Config (เป็นโมฆะ);
ถือเป็นโมฆะ Error_Handler (เป็นโมฆะ);
โมฆะคงที่ MX_GPIO_Init (โมฆะ);
int main (โมฆะ)
{
uint8_t color_buf = 0;
// การเลือกฟังก์ชั่น
/* รีเซ็ตอุปกรณ์ต่อพ่วงทั้งหมด เริ่มต้นอินเทอร์เฟซ Flash และ 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 ==จริง)
//
ข้อมูลซีเรียลรับแฟล็กบิต
{
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”,(const char *)RX3_BUF))==0)
// เลือกการควบคุม
{
color_buf = ปุ่ม 1;
}
ถ้า((strcmp(“button2”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 2;
}
ถ้า((strcmp(“button3”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 3;
}
ถ้า((strcmp(“button4”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 4;
}
ถ้า((strcmp(“button5”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 5;
}
ถ้า((strcmp(“button6”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 6;
}
ถ้า((strcmp(“button7”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 7;
}
ถ้า((strcmp(“button8”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 8;
}
ถ้า((strcmp(“button9”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 9;
}
ถ้า((strcmp(“button0”,(const char *)RX3_BUF))==0)
{
color_buf = ปุ่ม 0;
}
สวิตช์ (color_buf)
{
กรณี BUTTON1:
// ถ้า (r_flag1 == 0)
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
r_flag1 ^= 1;
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image2\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 ^= 1;
qua_hang1++;
quan_lie1++;
quan_youxia ++;
//memset(RX3_BUF,0,7);
//memset(MNG_USART1.RX_BUF,0,USART1_RX_LEN);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image2\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang1++;
cha_lie1++;
cha_youxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
//r_flag1 = 1;
break;
กรณี BUTTON2:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image3\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang1++;
quan_lie2++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image3\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang1++;
cha_lie2++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON3:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image4\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang1++;
quan_lie3++;
quan_zuoxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image4\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang1++;
cha_lie3++;
cha_zuoxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON4:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image5\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang2++;
quan_lie1++;
//memset(RX3_BUF,0,7);
//r_flag10=1;
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image5\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang2++;
cha_lie1++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON5:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image6\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang2++;
quan_lie2++;
quan_zuoxia++;
quan_youxia ++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image6\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang2++;
cha_lie2++;
cha_zuoxia++;
cha_youxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON6:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image7\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang2++;
quan_lie3++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image7\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang2++;
cha_lie3++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON7:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image8\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang3++;
quan_lie1++;
quan_zuoxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image8\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang3++;
cha_lie1++;
cha_zuoxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON8:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image9\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang3++;
quan_lie2++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image9\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang3++;
cha_lie2++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี BUTTON9:
ถ้า((r_flag1 == 0)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image10\”,\”image\”:\”circle\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 1;
qua_hang3++;
quan_lie3++;
quan_youxia ++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
อื่นถ้า((r_flag1 == 1)&&(MNG_USART1.RX_BUF[14] == 0x02))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image10\”,\”image\”:\”x\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
r_flag1 = 0;
cha_hang3++;
cha_lie3++;
cha_youxia++;
//memset(RX3_BUF,0,7);
color_buf = ชัดเจน;
}
break;
กรณี 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;
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image2\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image3\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image4\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image5\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image6\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image7\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image8\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image9\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_image\”,\”type\”:\”image\”,\”widget\”:\”image10\”,\”image\”:\”ใบ\ ”}>ET”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif4\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif5\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif6\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif7\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif8\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif9\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif10\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif11\”,\”visible\”:false}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(MNG_USART1);
//memset(RX3_BUF,0,7);
ชุดข้อมูล (MNG_USART1.RX_BUF,0,USART1_RX_LEN);
break;
ค่าเริ่มต้น:
MNG_USART1.RX_OVER_FLG = เท็จ;
break;
}
/////////////////////////////////////////////////////////////////////// /////////////////
ถ้า((quan_hang1==3)||(cha_hang1==3))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif4\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif5\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif6\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif7\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif8\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif9\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif11\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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))
{
ชุดข้อมูล (MNG_USART1.TX_BUF,0,USART1_TX_LEN);
sprintf((ถ่าน *)MNG_USART1.TX_BUF,
“ST<{\”cmd_code\”:\”set_visible\”,\”type\”:\”widget\”,\”widget\”:\”gif10\”,\”visible\”:true}>ET ”);
MNG_USART1.TX_Byte_Num = strlen((const ถ่าน *)MNG_USART1.TX_BUF);
USART_TX_ข้อมูล(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 = เท็จ;
}
}
}
/** การกำหนดค่านาฬิการะบบ
*/
เป็นโมฆะ 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)
{
Error_Handler();
}
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)
{
Error_Handler();
}
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK1;
ถ้า (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
/* การกำหนดค่าการขัดจังหวะ SysTick_IRQn */
HAL_NVIC_SetPriority (SysTick_IRQn, 0, 0);
}
/** การกำหนดค่าพินเอาท์
*/
โมฆะคงที่ MX_GPIO_Init (โมฆะ)
{
GPIO_InitTypeDef GPIO_InitStruct;
/* เปิดใช้งานนาฬิกาพอร์ต GPIO */
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_InitStruct.พิน = 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.พิน = 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)
{
}
/* รหัสผู้ใช้ END Error_Handler */
}
#ifdef USE_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 */
}
#เอนดิฟ
/ **
-
*/
/ **
-
*/
/*********************** (C) ลิขสิทธิ์ STMicroelectronics *****END OF FILE****/
แสดงผลสุดท้าย
ที่มา: Plato Data Intelligence