IOT

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 এর উপর ভিত্তি করে

সারাংশ

টিক-ট্যাক-টো হল একটি খেলা যা 3 বাই 3 গ্রিডে খেলা হয়, যা গোবাং-এর মতো। এটি এর নাম পেয়েছে কারণ বোর্ড সাধারণত সীমানা আঁকে না এবং গ্রিড লাইনগুলি টিক-ট্যাক-টোতে সাজানো হয়। গেমের জন্য প্রয়োজনীয় সরঞ্জামগুলি কেবল কাগজ এবং কলম। তারপর, O এবং X প্রতিনিধিত্বকারী দুজন খেলোয়াড় গ্রিডে চিহ্ন রেখে যাওয়ার জন্য পালা করে। যেকোনো তিনটি চিহ্ন একটি সরলরেখা তৈরি করে, যা বিজয়ী।

এই নিবন্ধটি একটি সাধারণ টিক-ট্যাক-টো গেম বিকাশ করতে মাইক্রোকন্ট্রোলার STM32 এবং STONE LCD ডিসপ্লে ব্যবহার করার জন্য।

পরীক্ষার জন্য প্রয়োজনীয় উপকরণ

সিস্টেমের নীতি

স্ক্রিনে প্রথম ট্যাপটি অবশ্যই O হতে হবে, স্ক্রিনের দ্বিতীয় ট্যাপটি X, এই চক্রটি করে আসছে। প্রতিটি গ্রিডের প্রতিটি সারি, কলাম এবং তির্যকটিতে O এবং X এর সংখ্যা সংরক্ষণ করতে 8টি অ্যারে সেট করুন, যতক্ষণ পর্যন্ত একই চিহ্নের তিনটি বিজয়ী হয়, তখন বিজয় প্রমাণ করার জন্য একটি ঝলকানি লাল বাক্স থাকবে। সারি, কলাম বা তির্যক, এবং তারপর আবার গেমটি শুরু করতে রিসেট আলতো চাপুন।

নিম্নলিখিত ফ্লো চার্ট:

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

STM32 এবং স্টোন LCD ডিসপ্লে সিস্টেম হার্ডওয়্যার ডিজাইন

(ক) স্টোন এলসিডি ডিসপ্লে

  1. "টিক-ট্যাক-টো গেম" হার্ডওয়্যার ডিজাইন

Beijing STONE Technology co., ltd-এর STONE LCD ডিসপ্লে ব্যবহার করুন, মডেলটি হল STWI070WT-01, একটি সমন্বিত TFT ডিসপ্লে এবং টাচ কন্ট্রোলার সহ।

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.
  1.  STVC070WT-01 পণ্যের বৈশিষ্ট্য
শারীরিক পরামিতি 
আয়তন7 ইঞ্চি
সমাধান800×RGB×480
পিক্সেল ব্যবধান0.0642(W) × 0.1790(H) মিমি
Color 262,144 রং (18 বিট)
দেখার এলাকা154.08(W) × 85.92(H) মিমি
ডিসপ্লে ডাইমেনশন186.4mmx105.5mm
সামগ্রিক মাত্রা186.4mmx105.5mmx17.4mm(স্ট্যান্ডার্ড টাইপ)186.4mmx105.5mmx23.8mm (ইথারনেট পোর্ট সহ)
নিট ওজন300g
প্রদর্শন 
ব্যাকলাইট টাইপএলইডি
উজ্জ্বলতা300cd/m2 (উজ্জ্বলতা 100 স্তরে সামঞ্জস্যযোগ্য হতে পারে)
বিপরীত হত্তয়া500:1
ব্যাকলাইট জীবন300,000 ঘণ্টা
দেখার কোণ70°/70°/50°/70°(L/R/U/D)
TFT প্যানেলএকটি ক্লাস ইন্ডাস্ট্রি প্যানেল
টাচ স্ক্রিন4 ওয়্যার রেজিস্ট্যান্স টাচ/ক্যাপাসিটিভ টাচ/ টাচ স্ক্রীন ছাড়া
স্ক্রীন মোডে:ডিজিটাল
প্রসেসর 
সিপিইউকর্টক্স এক্সক্সএক্স
রিফ্রেশ রেট1G Hz
সর্বোচ্চ ফ্রেম হার60 FPS
ইন্টারফেস 
সিরিয়াল ইন্টারফেসRS232 / RS422 / RS485 / TTL স্তর
ইথারনেট ইন্টারফেস10M/100M (ঐচ্ছিক)
ওয়্যারলেস ইন্টারফেসওয়াই-ফাই / ব্লুটুথ (ঐচ্ছিক)
প্রকল্প ফাইল ডাউনলোড হচ্ছেUSB2.0 পোর্ট বা U স্টোরেজ ডিস্ক
পাওয়ার সাপ্লাই 
হারের ভোল্টেজ+12V DC বা +5V DC
অনুমোদিত ভোল্টেজ পরিসীমা+7V DC…+28V DC বা +5V DC
সর্বোচ্চ অনুমোদিত ক্ষণস্থায়ী+ + 28V
দুই ক্ষণস্থায়ী মধ্যে সময়সর্বনিম্ন 50 সেকেন্ড
ইন্টারনাল ফিউজ2A স্ব-পুনরুদ্ধার ফিউজ
শক্তি খরচ3.0 ওয়াট
পরিবেষ্টনকারী শর্ত 
সর্বোচ্চ অনুমোদিত পরিবেষ্টিত তাপমাত্রাঅপারেশন স্টোরেজ-20℃~ +70℃-30℃~ +80℃
আপেক্ষিক আদ্রতাঅপারেশন স্টোরেজ55℃,85%60℃,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 kV/8 kV
আরএফ বিকিরণEN 61000-4-310 V/m, 80% AM1 kHz
পালস মড্যুলেশনENV 50204900 MHz ±5 MHz10 V/meff., 50% ED, 200 Hz
আরএফ সঞ্চালনEN 61000-4-6150 kHz – 80 MHz10 V, 80% AM, 1 kHz
বার্স্ট ইন্টারফারেন্স সাপ্লাই লাইন প্রসেস ডাটা লাইন সিগন্যাল লাইনEN 61000-4-42kV2kV1kV
সমর্থন ডিভাইস 
ইউআরটি বন্দরSupportRS232/RS422/RS485/TTL
নেটওয়ার্ক পোর্টইথারনেট পোর্ট / ওয়াই-ফাই / ব্লুটুথ সমর্থন করুন
ফ্ল্যাশ মেমরিসাপোর্ট স্ট্যান্ডার্ড 256MB, 1GB বা 2GB প্রসারিত করুন
হর্ণসহায়তা
আরটিসিসহায়তা
USB পোর্টেরইউএসবি কেবল দ্বারা অনলাইন ডাউনলোড সমর্থন
ইউ স্টোরেজ ডিস্ক ইন্টারফেসSupport.Offline ডাউনলোড করুন বা ব্যবহারকারীর ডেটা কপি করুন
টাচ স্ক্রিন4 তারের প্রতিরোধ / ক্যাপাসিটিভ
ভেক্টর ফন্টস্ট্যান্ডার্ড TTF ফরম্যাট
ভাবমূর্তিPNG/JPG/BMP/SVG/GIF ফর্ম্যাট সমর্থন করে
অডিও ইন্টারফেসWAV ফর্ম্যাট সমর্থন করুন একক অডিও ফাইলের দৈর্ঘ্য সীমাবদ্ধ নয়, তাত্ত্বিকভাবে 4096 অডিও ফাইল পর্যন্ত, স্পিকারের শক্তি 8 ohms 2 ওয়াট বা 4 ohms 3 ওয়াট
কমান্ড সেটইউনিফাইড সরলীকৃত কমান্ড সেট
স্মৃতি 
ফ্ল্যাশ মেমরিস্ট্যান্ডার্ড 256MB, এক্সটেনশন 1GB বা 2GB
ছবির জন্য মেমরির পরিমাণছবির ক্ষমতা অনুযায়ী, "PNG, BMP, JPG, SVG, GIF" ফর্ম্যাট সাজেস্ট করুন।

(B) STM32 বোর্ড

একটি STM32 বোর্ড ব্যবহার করে, STM32-এর চিপ হল CKS32F303৷

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

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: LCD ডিসপ্লে USB এর মাধ্যমে পিসির সাথে সংযুক্ত থাকে এবং এক্সিকিউটেবল ফাইলটিকে স্ক্রিনে কপি করে।

প্রথমে নিচের মত একটি নতুন প্রজেক্ট তৈরি করুন।

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.
টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

দ্বিতীয়ত, সম্পদে সমস্ত ছবি আমদানি করুন

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

তারপর, প্রতিটি গ্রিডে বোতাম নিয়ন্ত্রণ সেট করুন এবং বোতামগুলিকে অদৃশ্য করে দিন। 

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

রিসেট বোতাম সেট করতে ভুলবেন না!

সমাপ্ত প্রভাব নীচে দেখানো হয়েছে:

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

এর পরে, প্রতিটি গ্রিডে একইভাবে চিত্র নিয়ন্ত্রণ যুক্ত করুন এবং সেগুলিকে সাদা ছবিতে সেট করুন।

অবশেষে gif কন্ট্রোল যোগ করুন এবং এটিকে অদৃশ্যে সেট করুন।

সমাপ্ত প্রভাবের অংশগুলি নীচে দেখানো হয়েছে:

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.
টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.
টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.
টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

সার্কিট সংযোগ চিত্র

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

কোড ভাগ করা

/* অন্তর্ভুক্ত ———————————————————————*/ 

# "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]; // কাস্টমাইজড থ্রি-লেভেল রিসিভ বাফার 

# BUTTON1 0x81 সংজ্ঞায়িত করুন 

# BUTTON2 0x82 সংজ্ঞায়িত করুন 

# BUTTON3 0x83 সংজ্ঞায়িত করুন 

# BUTTON4 0x84 সংজ্ঞায়িত করুন 

# BUTTON5 0x85 সংজ্ঞায়িত করুন 

# BUTTON6 0x86 সংজ্ঞায়িত করুন 

# BUTTON7 0x87 সংজ্ঞায়িত করুন 

# BUTTON8 0x88 সংজ্ঞায়িত করুন 

# BUTTON9 0x89 সংজ্ঞায়িত করুন 

# BUTTON0 0x8A সংজ্ঞায়িত করুন 

# CLEAR 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; 

স্বাক্ষরবিহীন int cha_lie1 = 0; 

স্বাক্ষরবিহীন int cha_lie2 = 0; 

স্বাক্ষরবিহীন int cha_lie3 = 0; 

স্বাক্ষরবিহীন int cha_zuoxia = 0; 

স্বাক্ষরবিহীন int cha_youxia = 0; // স্বাক্ষরবিহীন int r_flag10 = 0; 

void SystemClock_Config(অকার্যকর); 

void Error_Handler(void); 

স্ট্যাটিক শূন্যতা MX_GPIO_Init(অকার্যকর); 

int প্রধান (অকার্যকর) 

uint8_t color_buf = 0; 

//ফাংশন নির্বাচন 

/* সমস্ত পেরিফেরাল রিসেট করে, ফ্ল্যাশ ইন্টারফেস এবং সিস্টিক শুরু করে। */ 

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(); 

//টিটিএল সূচনা 

যখন (1) 

if(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]; 

if((strcmp(“button1”,(const char *)RX3_BUF))==0) 

//নিয়ন্ত্রণ নির্বাচন করুন

color_buf = BUTTON1; 

}

if((strcmp(“button2”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON2; 

}

if((strcmp(“button3”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON3; 

}

if((strcmp(“button4”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON4; 

}

if((strcmp(“button5”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON5; 

}

if((strcmp(“button6”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON6; 

}

if((strcmp(“button7”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON7; 

}

if((strcmp(“button8”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON8; 

}

if((strcmp(“button9”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON9; 

}

if((strcmp(“button0”,(const char *)RX3_BUF))==0) 

color_buf = BUTTON0; 

}

সুইচ (রঙ_বাফ) 

কেস বোতাম 1: 

//যদি(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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 ^= 1; 

quan_hang1++; 

quan_lie1++; 

quan_youxia++;  

//মেমসেট(RX3_BUF,0,7); 

//মেমসেট(MNG_USART1.RX_BUF,0,USART1_RX_LEN); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang1++; 

cha_lie1++; 

cha_youxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

//r_flag1 = 1; 

বিরতি; 

কেস বোতাম 2: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang1++; 

quan_lie2++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang1++; 

cha_lie2++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 3: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang1++; 

quan_lie3++; 

quan_zuoxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang1++; 

cha_lie3++; 

cha_zuoxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 4: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang2++; 

quan_lie1++; 

//মেমসেট(RX3_BUF,0,7); 

//r_flag10=1; 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang2++; 

cha_lie1++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 5: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang2++; 

quan_lie2++; 

quan_zuoxia++; 

quan_youxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang2++; 

cha_lie2++; 

cha_zuoxia++; 

cha_youxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 6: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang2++; 

quan_lie3++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang2++; 

cha_lie3++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 7: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang3++; 

quan_lie1++; 

quan_zuoxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang3++; 

cha_lie1++; 

cha_zuoxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 8: 

যদি((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\":\"Circle\ "}>ET"); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang3++; 

quan_lie2++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang3++; 

cha_lie2++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 9: 

যদি((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\":\"Circle\ "}>ET");

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 1; 

quan_hang3++; 

quan_lie3++; 

quan_youxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

অন্যথায় যদি((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((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

r_flag1 = 0; 

cha_hang3++; 

cha_lie3++; 

cha_youxia++; 

//মেমসেট(RX3_BUF,0,7); 

color_buf = CLEAR; 

}

বিরতি; 

কেস বোতাম 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; 

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((const char *)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((const char *)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((const char *)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((const char *)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((const char *)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((const char *)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((const char *)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((const char *)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((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":false}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)MNG_USART1.TX_BUF); 

USART_TX_Data(MNG_USART1); 

//মেমসেট(RX3_BUF,0,7); 

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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”);

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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\",\"visible\":true}>ET ”); 

MNG_USART1.TX_Byte_Num = strlen((const char *)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; 

}

/** সিস্টেম ঘড়ি কনফিগারেশন 

*/

void SystemClock_Config(অকার্যকর) 

RCC_OscInitTypeDef RCC_OscInitStruct; 

RCC_ClkInitTypeDef RCC_ClkInitStruct; 

RCC_PeriphCLKInitTypeDef PeriphClkInit; 

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; 

RCC_OscInitStruct.HSISstate = RCC_HSI_ON; 

RCC_OscInitStruct.HSICalibrationValue = 16; 

RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 

RCC_OscInitStruct.PLL.PLLSsource = 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.AHBCLKDivder = RCC_SYSCLK_DIV1; 

RCC_ClkInitStruct.APB1CLKDivder = 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 */ 

/ **

* @ সংক্ষিপ্ত এই ফাংশনটি ত্রুটির ক্ষেত্রে কার্যকর করা হয়। 

* @পরম না 

* @retval কোনটিই নয় 

*/ 

void Error_Handler(অকার্যকর) 

/* ব্যবহারকারীর কোড শুরু ত্রুটি_হ্যান্ডলার */ 

/* HAL এরর রিটার্ন স্টেট রিপোর্ট করতে ব্যবহারকারী তার নিজস্ব বাস্তবায়ন যোগ করতে পারেন */ 

যখন (1) 

{

}

/* ব্যবহারকারী কোড শেষ ত্রুটি_হ্যান্ডলার */ 

}

#ifdef USE_FULL_ASSERT 

/ **

* @ ব্রিফ সোর্স ফাইলের নাম এবং সোর্স লাইন নম্বর রিপোর্ট করে 

* যেখানে assert_param ত্রুটি ঘটেছে। 

* @param ফাইল: উৎস ফাইলের নাম নির্দেশক 

* @পরম লাইন: assert_param ত্রুটি লাইন উৎস নম্বর 

* @retval কোনটিই নয় 

*/ 

void assert_failed(uint8_t* ফাইল, uint32_t লাইন) 

/* ব্যবহারকারী কোড শুরু 6 */ 

/* ব্যবহারকারী ফাইলের নাম এবং লাইন নম্বর রিপোর্ট করতে তার নিজস্ব বাস্তবায়ন যোগ করতে পারেন, 

যেমন: printf("ভুল পরামিতি মান: ফাইল %s অন লাইন %d\r\n", ফাইল, লাইন) */ 

/* ব্যবহারকারী কোড শেষ 6 */ 

}

#endif 

/ **

* @} 

*/ 

/ **

* @} 

*/

/************************ (C) কপিরাইট STMicroelectronics ***** ফাইলের শেষ****/

চূড়ান্ত ফলাফল দেখায়

টিক-ট্যাক-টো গেম STONE TFT LCD এবং STM32 IOT PlatoBlockchain ডেটা ইন্টেলিজেন্সের উপর ভিত্তি করে। উল্লম্ব অনুসন্ধান. আ.

সূত্র: প্লেটো ডেটা ইন্টেলিজেন্স