IOT

स्टोन टीएफटी एलसीडी और एसटीएम 32 . पर आधारित टिक-टैक-टो गेम

सारांश

टिक-टैक-टो एक गेम है जो गोबैंग के समान 3 बाय 3 ग्रिड पर खेला जाता है। इसका नाम इसलिए पड़ा क्योंकि बोर्ड आम तौर पर सीमाएं नहीं खींचता है और ग्रिड लाइनों को टिक-टैक-टो में व्यवस्थित किया जाता है। खेल के लिए आवश्यक उपकरण केवल कागज और कलम हैं। फिर, O और X का प्रतिनिधित्व करने वाले दो खिलाड़ी बारी-बारी से ग्रिड पर निशान छोड़ते हैं। कोई भी तीन अंक एक सीधी रेखा बनाते हैं, जो विजेता होता है।

यह लेख एक साधारण टिक-टैक-टो गेम विकसित करने के लिए माइक्रोकंट्रोलर STM32 और STONE LCD डिस्प्ले का उपयोग करने के लिए है।

प्रयोग के लिए आवश्यक सामग्री

प्रणाली सिद्धांत

निर्दिष्ट करें कि स्क्रीन पर पहला टैप ओ होना चाहिए, स्क्रीन पर दूसरा टैप एक्स है, यह चक्र कर रहा है। प्रत्येक ग्रिड के प्रत्येक पंक्ति, स्तंभ और विकर्ण में O और X की संख्या को संग्रहीत करने के लिए 8 सरणियाँ सेट करें, जब तक कि एक ही चिह्न के तीन जीत हैं, तब जीत साबित करने के लिए एक चमकता लाल बॉक्स होगा पंक्ति, स्तंभ या विकर्ण, और फिर खेल को फिर से शुरू करने के लिए रीसेट पर टैप करें।

निम्नलिखित प्रवाह चार्ट है:

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

STM32 और STONE LCD डिस्प्ले सिस्टम हार्डवेयर डिज़ाइन

(ए) स्टोन एलसीडी डिस्प्ले

  1. "टिक-टैक-टो गेम" हार्डवेयर डिज़ाइन

बीजिंग स्टोन टेक्नोलॉजी कंपनी लिमिटेड के स्टोन एलसीडी डिस्प्ले का उपयोग करें, मॉडल STWI070WT-01 है, जिसमें एक एकीकृत TFT डिस्प्ले और टच कंट्रोलर है।

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.
  1.  STVC070WT-01 उत्पाद की विशेषताएँ
भौतिक पैरामीटर 
आकार7 इंच
संकल्प800 × आरजीबी × 480
पिक्सेल रिक्ति0.0642 (डब्ल्यू) × 0.1790 (एच) मिमी
रंग262,144 रंग (18 बिट)
देखने के क्षेत्र154.08 (डब्ल्यू) × 85.92 (एच) मिमी
प्रदर्शन प्रदर्शित करें186.4mmx105.5mm
समग्र आयाम186.4mmx105.5mmx17.4mm (मानक प्रकार) 186.4mmx105.5mmx23.8mm (ईथरनेट पोर्ट के साथ)
निवल भार300g
डिस्प्ले 
बैकलाइट प्रकारएलईडी
चमक300 सीडी / एम 2 (चमक 100 स्तरों में समायोज्य हो सकती है)
कंट्रास्ट500:1
बैकलाइट लाइफ300,000 घंटे
देखने के कोण70 ° / 70 ° / 50 ° / 70 ° (L / R / U / D)
TFT पैनलएक वर्ग उद्योग पैनल
टच स्क्रीन4 तार प्रतिरोध स्पर्श / कैपेसिटिव टच / बिना टच स्क्रीन के
स्क्रीन मोड:डिजिटल
प्रोसेसर 
सी पी यूप्रांतस्था A8
ताज़ा दर1G हर्ट्ज
अधिकतम फ्रेम दर60 एफपीएस
इंटरफेस 
आनुक्रमिक अंतरापृष्ठRS232 / RS422 / RS485 / TTL स्तर
ईथरनेट इंटरफेस10एम/100एम (वैकल्पिक)
वायरलेस इंटरफ़ेसवाई-फाई / ब्लूटूथ (वैकल्पिक)
प्रोजेक्ट फ़ाइल डाउनलोडिंगयूएसबी 2.0 पोर्ट या यू स्टोरेज डिस्क
बिजली की आपूर्ति 
रेटेड वोल्टेज+12वी डीसी या +5वी डीसी
अनुमेय वोल्टेज रेंज+7वी डीसी…+28वी डीसी या +5वी डीसी
मैक्स। अनुमेय क्षणिक+ 28V
दो क्षणिकों के बीच का समय50 सेकंड न्यूनतम
आंतरिक फ्यूज2A स्व-वसूली फ्यूज
बिजली की खपत3.0 डब्ल्यू
आसपास की स्थितियाँ 
मैक्स। अनुमेय परिवेश का तापमानऑपरेशनस्टोरेज-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 hPa581 से 1030 hPa
शोर उन्मुक्ति 
स्टेटिक डिस्चार्ज (संपर्क डिस्चार्ज / एयर डिस्चार्ज)एन 61000-4-2 6 केवी/8 केवी
आरएफ विकिरणएन 61000-4-310 वी/एम, 80% एएम1 किलोहर्ट्ज़
पल्स मॉड्यूलेशनईएनवी 50204900 मेगाहर्ट्ज ±5 मेगाहर्ट्ज10 वी/मेफ., 50% ईडी, 200 हर्ट्ज
आरएफ चालनEN 61000-4-6150 kHz - 80 MHz10 V, 80% AM, 1 kHz
बर्स्ट इंटरफेरेंस सप्लाई लाइन्स प्रोसेस डेटा लाइन्स सिग्नल लाइन्सEN 61000-4-42kV2kV1kV
समर्थन डिवाइस 
UART पोर्टसमर्थनRS232/RS422/RS485/टीटीएल
नेटवर्क पोर्टसमर्थन ईथरनेट पोर्ट / वाई-फाई / ब्लूटूथ
फ्लैश मेमोरीसमर्थन मानक 256MB, 1GB या 2GB बढ़ाएँ
बजरसहायता
आरटीसीसहायता
यूएसबी पोर्टयूएसबी केबल द्वारा ऑनलाइन डाउनलोड का समर्थन करें
यू स्टोरेज डिस्क इंटरफेससमर्थन। ऑफ़लाइन डाउनलोड करें या उपयोगकर्ता डेटा कॉपी करें
टच स्क्रीन4 तार प्रतिरोध / कैपेसिटिव
वेक्टर फ़ॉन्टमानक टीटीएफ प्रारूप
छविसमर्थन पीएनजी/जेपीजी/बीएमपी/एसवीजी/जीआईएफ प्रारूप
ऑडियो इंटरफेससमर्थन WAV प्रारूप एकल ऑडियो फ़ाइल की लंबाई सीमित नहीं है, सैद्धांतिक रूप से 4096 ऑडियो फ़ाइलों तक, स्पीकर की शक्ति 8 ओम 2 वाट या 4 ओम 3 वाट है
कमांड सेट करेंएकीकृत सरलीकृत कमांड सेट
याद 
फ्लैश मेमोरीमानक 256MB, एक्सटेंशन 1GB या 2GB
छवि के लिए मेमोरी राशिछवि की क्षमता के अनुसार, "पीएनजी, बीएमपी, जेपीजी, एसवीजी, जीआईएफ" प्रारूप का सुझाव दें।

(बी) एसटीएम 32 बोर्ड

STM32 बोर्ड का उपयोग करते हुए, STM32 की चिप CKS32F303 है।

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

ARM Cortex-M32, M0+, M0, M3 और M4 कोर के STM7 परिवार को उच्च प्रदर्शन, कम लागत और कम बिजली की खपत की आवश्यकता वाले एम्बेडेड अनुप्रयोगों के लिए डिज़ाइन किया गया है।

  • 2.0V-3.6V बिजली की आपूर्ति
  • 5V संगत I/O पिन
  • उत्कृष्ट सुरक्षित घड़ी मोड
  • वेक-अप फ़ंक्शन के साथ कम पावर मोड
  • आंतरिक आरसी थरथरानवाला
  • एंबेडेड रीसेट सर्किट
  • तापमान सीमा संचालित करना।
  • -40°C से +85°C या 105°C

सिस्टम सॉफ्टवेयर डिजाइन

STM32 और STONE LCD डिस्प्ले की विकास प्रक्रिया

1: प्रोजेक्ट बनाएं और प्रोजेक्ट में आवश्यक चित्र लोड करें।

2: गतिशील रूप से संबद्ध संबंध बनाने के लिए स्टोन-डिज़ाइनर सॉफ़्टवेयर का उपयोग करें; मुख्य नियंत्रण हैं: "बटन", "छवि";

3: निष्पादन योग्य फ़ाइलों को उत्पन्न करने के लिए सॉफ़्टवेयर सिमुलेशन और संकलन।

4: एलसीडी डिस्प्ले यूएसबी के माध्यम से पीसी से जुड़ा है और निष्पादन योग्य फ़ाइल को स्क्रीन पर कॉपी करता है।

पहले एक नया प्रोजेक्ट बनाएं जैसा कि नीचे दिखाया गया है।

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.
टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

दूसरे, सभी छवियों को संसाधन में आयात करें

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

फिर, प्रत्येक ग्रिड पर बटन नियंत्रण सेट करें और बटनों को अदृश्य बनाएं। 

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

रीसेट बटन सेट करना न भूलें!

समाप्त प्रभाव नीचे दिखाया गया है:

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

उसके बाद, प्रत्येक ग्रिड में उसी तरह छवि नियंत्रण जोड़ें, और उन सभी को सफेद छवियों पर सेट करें।

अंत में जीआईएफ नियंत्रण जोड़ें और इसे अदृश्य पर सेट करें।

तैयार प्रभाव के भाग नीचे दिखाए गए हैं:

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.
टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.
टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.
टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

सर्किट कनेक्शन आरेख

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

गुप्त भाषा बांटना

/* शामिल है ——————————————————————*/ 

#शामिल "stm32f0xx_hal.h" 

#शामिल "Uart.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 

#परिभाषित करें बटन0 0x8A 

#स्पष्ट 0x8E परिभाषित करें 

अहस्ताक्षरित int r_flag1 = 0; 

अहस्ताक्षरित इंट क्वान[4][2]={0}; 

अहस्ताक्षरित इंट चा [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; 

अहस्ताक्षरित 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 (शून्य); 

शून्य त्रुटि_हैंडलर (शून्य); 

स्थिर शून्य MX_GPIO_Init (शून्य); 

int मुख्य (शून्य) 

uint8_t color_buf = 0; 

// फ़ंक्शन चयन 

/* सभी बाह्य उपकरणों को रीसेट करें, फ्लैश इंटरफेस और सिस्टिक को इनिशियलाइज़ करें। */ 

एचएएल_इनिट (); 

/* सिस्टम घड़ी को कॉन्फ़िगर करें */ 

सिस्टमक्लॉक_कॉन्फिग (); 

/* सभी कॉन्फ़िगर किए गए बाह्य उपकरणों को प्रारंभ करें */ 

एमएक्स_जीपीआईओ_इनिट (); 

TX_Mode = HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_4); 

अगर (TX_मोड) 

MX_USART1_UART_Init (); 

// 232 आरंभीकरण 

अन्य 

MX_USART1_UART_Init2 (); 

// टीटीएल आरंभीकरण 

जबकि (1) 

अगर (TX_मोड! = 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 ("बटन 1", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

// नियंत्रण चुनें

color_buf = बटन 1; 

}

अगर ((strcmp ("बटन 2", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 2; 

}

अगर ((strcmp ("बटन 3", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 3; 

}

अगर ((strcmp ("बटन 4", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 4; 

}

अगर ((strcmp ("बटन 5", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 5; 

}

अगर ((strcmp ("बटन 6", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 6; 

}

अगर ((strcmp ("बटन 7", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 7; 

}

अगर ((strcmp ("बटन 8", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 8; 

}

अगर ((strcmp ("बटन 9", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 9; 

}

अगर ((strcmp ("बटन 0", (कॉन्स्ट चार *) RX3_BUF)) == 0) 

color_buf = बटन 0; 

}

स्विच (color_buf) 

केस बटन1: 

// अगर (r_flag1 == 0) 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

r_flag1 ^= 1; 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 ^= 1; 

क्वान_हैंग1++; 

क्वान_ली 1++; 

क्वान_यौक्सिया++;  

// मेमसेट (RX3_BUF, 0,7); 

// मेमसेट (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); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग1++; 

चा_ली1++; 

चा_यौक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

// r_flag1 = 1; 

तोड़; 

केस बटन2: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग1++; 

क्वान_ली 2++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग1++; 

चा_ली2++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन3: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग1++; 

क्वान_ली 3++; 

क्वान_ज़ुओक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग1++; 

चा_ली3++; 

चा_ज़ुओक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन4: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग2++; 

क्वान_ली 1++; 

// मेमसेट (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); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग2++; 

चा_ली1++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन5: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग2++; 

क्वान_ली 2++; 

क्वान_ज़ुओक्सिया++; 

क्वान_यौक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग2++; 

चा_ली2++; 

चा_ज़ुओक्सिया++; 

चा_यौक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन6: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग2++; 

क्वान_ली 3++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02))

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग2++; 

चा_ली3++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन7: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग3++; 

क्वान_ली 1++; 

क्वान_ज़ुओक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग3++; 

चा_ली1++; 

चा_ज़ुओक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन8: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"circle\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग3++; 

क्वान_ली 2++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग3++; 

चा_ली2++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन9: 

अगर ((r_flag1 == 0)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"circle\ "}>ईटी");

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 1; 

क्वान_हैंग3++; 

क्वान_ली 3++; 

क्वान_यौक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

और अगर ((r_flag1 == 1)&&(MNG_USART1.RX_BUF [14] == 0x02)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"x\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

r_flag1 = 0; 

चा_हांग3++; 

चा_ली3++; 

चा_यौक्सिया++; 

// मेमसेट (RX3_BUF, 0,7); 

color_buf = साफ़; 

}

तोड़; 

केस बटन0: 

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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image2\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image3\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image4\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image5\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image6\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image7\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image8\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image9\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1);

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_image\",\"type\":\"image\",\"widget\":\"image10\",\"image\":\"bai\ "}>ईटी"); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif4\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif5\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif6\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif7\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif8\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif9\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif10\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif11\",\"visible\":false}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) MNG_USART1.TX_BUF); 

USART_TX_डेटा (MNG_USART1); 

// मेमसेट (RX3_BUF, 0,7); 

मेमसेट (MNG_USART1.RX_BUF,0,USART1_RX_LEN); 

तोड़; 

चूक: 

MNG_USART1.RX_OVER_FLG = गलत; 

तोड़; 

}

////////////////////////////////////////////// ////////////////// 

अगर((quan_hang1==3)||(cha_hang1==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif4\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर ((quan_hang2==3)||(cha_hang2==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif5\",\"visible\":true}>ET ");

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर ((quan_hang3==3)||(cha_hang3==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif6\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर ((quan_lie1==3)||(cha_lie1==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif7\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर ((quan_lie2==3)||(cha_lie2==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif8\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर ((quan_lie3==3)||(cha_lie3==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif9\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर((quan_zuoxia==3)||(cha_zuoxia==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif11\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 0; 

}

और अगर((quan_youxia==3)||(cha_youxia==3)) 

मेमसेट (MNG_USART1.TX_BUF,0,USART1_TX_LEN); 

स्प्रिंटफ ((चार *) MNG_USART1.TX_BUF, 

"ST<{\"cmd_code\":\"set_visible\",\"type\":\"widget\",\"widget\":\"gif10\",\"visible\":true}>ET "); 

MNG_USART1.TX_Byte_Num = strlen ((स्थिरांक चार *) 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; 

क्वान_ज़ुओक्सिया = क्वान_यूक्सिया = चा_ज़ुओक्सिया = चा_यौक्सिया = 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.HSICअंशांकन मान = 16; 

RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 

RCC_OscInitStruct.PLL.PLL स्रोत = 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.SYSCLKस्रोत = 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.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 त्रुटि होने की स्थिति में यह फ़ंक्शन निष्पादित किया जाता है। 

*@परम कोई नहीं 

* @retval कोई नहीं 

*/ 

शून्य त्रुटि_हैंडलर (शून्य) 

/* यूजर कोड BEGIN Error_Handler */ 

/* उपयोगकर्ता एचएएल त्रुटि वापसी स्थिति की रिपोर्ट करने के लिए अपना स्वयं का कार्यान्वयन जोड़ सकते हैं */ 

जबकि (1) 

{

}

/* उपयोगकर्ता कोड अंत Error_Handler */ 

}

#ifdef USE_FULL_ASSERT 

/ **

* @ ब्रीफ स्रोत फ़ाइल के नाम और स्रोत लाइन नंबर की रिपोर्ट करता है 

* जहां assert_param त्रुटि हुई है। 

* @param फ़ाइल: स्रोत फ़ाइल नाम का सूचक 

* @परम लाइन: assert_param एरर लाइन सोर्स नंबर 

* @retval कोई नहीं 

*/ 

शून्य मुखर_विफल (uint8_t* फ़ाइल, uint32_t पंक्ति) 

/* प्रयोक्ता कोड प्रारंभ 6 */ 

/* उपयोगकर्ता फ़ाइल नाम और लाइन नंबर की रिपोर्ट करने के लिए अपना स्वयं का कार्यान्वयन जोड़ सकता है, 

उदाहरण के लिए: प्रिंटफ ("गलत पैरामीटर मान: फ़ाइल% s ऑन लाइन% d \ r \ n", फ़ाइल, लाइन) * / 

/* उपयोगकर्ता कोड समाप्ति 6 */ 

}

#endif 

/ **

*@} 

*/ 

/ **

*@} 

*/

/********** (सी) कॉपीराइट STMicroelectronics ***** फ़ाइल का अंत ****/

अंतिम परिणाम दिखाएँ

टिक-टैक-टो गेम स्टोन टीएफटी एलसीडी और एसटीएम32 आईओटी प्लेटोब्लॉकचेन डेटा इंटेलिजेंस पर आधारित है। लंबवत खोज. ऐ.

स्रोत: प्लेटो डेटा इंटेलिजेंस