IOT

เกม Tic-tac-toe ที่ใช้ STONE TFT LCD และ STM32

สรุป

Tic-tac-toe เป็นเกมที่เล่นบนตาราง 3 คูณ 3 คล้ายกับ gobang มันได้ชื่อมาเพราะโดยทั่วไปแล้วบอร์ดจะไม่วาดเส้นขอบและเส้นกริดจะถูกจัดเรียงเป็นโอเอกซ์ เครื่องมือที่จำเป็นสำหรับเกมมีเพียงกระดาษและปากกาเท่านั้น จากนั้น ผู้เล่นสองคนที่เป็นตัวแทนของ O และ X ผลัดกันทำเครื่องหมายบนตาราง เครื่องหมายสามอันใด ๆ รวมกันเป็นเส้นตรง ซึ่งเป็นผู้ชนะ

บทความนี้เป็นการใช้ไมโครคอนโทรลเลอร์ STM32 และจอแสดงผล STONE LCD เพื่อพัฒนาเกมโอเอกซ์อย่างง่าย

วัสดุที่จำเป็นสำหรับการทดลอง

หลักการของระบบ

ระบุการแตะหน้าจอครั้งแรกต้องเป็น O การแตะครั้งที่สองบนหน้าจอคือ X ทำมาเป็นวงจรแบบนี้ กำหนด 8 อาร์เรย์เพื่อเก็บจำนวน O และ X ในแต่ละแถว คอลัมน์ และเส้นทแยงมุมของแต่ละตาราง ตราบใดที่มีเครื่องหมายชัยชนะเหมือนกัน XNUMX อัน ก็จะมีกล่องสีแดงกะพริบเพื่อพิสูจน์ชัยชนะของ แถว คอลัมน์ หรือแนวทแยง แล้วแตะรีเซ็ตเพื่อเริ่มเกมอีกครั้ง

ต่อไปนี้เป็นแผนภูมิการไหล:

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การออกแบบฮาร์ดแวร์ระบบแสดงผล LCD STM32 และ STONE

(A) จอแสดงผล STONE LCD

  1. การออกแบบฮาร์ดแวร์ "เกม Tic-tac-toe"

ใช้จอแสดงผล STONE LCD ของ Beijing STONE Technology co., ltd รุ่นคือ STWI070WT-01 พร้อมจอแสดงผล TFT ในตัวและตัวควบคุมแบบสัมผัส

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
  1.  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 กิโลโวลต์
การฉายรังสี RFEN 61000-4-310 V/ม., 80% AM1 กิโลเฮิรตซ์
การปรับพัลส์ENV 50204900 MHz ±5 MHz10 V/ช่าง, 50% ED, 200 Hz
การนำ RFEN 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
อินเตอร์เฟสดิสก์หน่วยเก็บข้อมูล USupport.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

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ตระกูล 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 และคัดลอกไฟล์ปฏิบัติการไปยังหน้าจอ

ขั้นแรกให้สร้างโครงการใหม่ตามที่แสดงด้านล่าง

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ประการที่สอง นำเข้ารูปภาพทั้งหมดลงในทรัพยากร

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

จากนั้น ตั้งค่าการควบคุมปุ่มให้กับแต่ละตารางและทำให้มองไม่เห็นปุ่มต่างๆ 

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

อย่าลืมตั้งค่าปุ่มรีเซ็ต!

เอฟเฟ็กต์ที่เสร็จแล้วแสดงอยู่ด้านล่าง:

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

หลังจากนั้น ให้เพิ่มตัวควบคุมรูปภาพลงในแต่ละกริดด้วยวิธีเดียวกัน และตั้งค่าให้เป็นรูปภาพสีขาวทั้งหมด

สุดท้ายเพิ่มการควบคุม gif และตั้งค่าให้มองไม่เห็น

ส่วนต่าง ๆ ของเอฟเฟกต์สำเร็จรูปแสดงไว้ด้านล่าง:

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

แผนภาพการเชื่อมต่อวงจร

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

การแชร์รหัส

/* รวมถึง ----------------------*/ 

#รวมถึง “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****/

แสดงผลสุดท้าย

เกม Tic-tac-toe ขึ้นอยู่กับ STONE TFT LCD และ STM32 IOT PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ที่มา: Plato Data Intelligence