সারাংশ
টিক-ট্যাক-টো হল একটি খেলা যা 3 বাই 3 গ্রিডে খেলা হয়, যা গোবাং-এর মতো। এটি এর নাম পেয়েছে কারণ বোর্ড সাধারণত সীমানা আঁকে না এবং গ্রিড লাইনগুলি টিক-ট্যাক-টোতে সাজানো হয়। গেমের জন্য প্রয়োজনীয় সরঞ্জামগুলি কেবল কাগজ এবং কলম। তারপর, O এবং X প্রতিনিধিত্বকারী দুজন খেলোয়াড় গ্রিডে চিহ্ন রেখে যাওয়ার জন্য পালা করে। যেকোনো তিনটি চিহ্ন একটি সরলরেখা তৈরি করে, যা বিজয়ী।
এই নিবন্ধটি একটি সাধারণ টিক-ট্যাক-টো গেম বিকাশ করতে মাইক্রোকন্ট্রোলার STM32 এবং STONE LCD ডিসপ্লে ব্যবহার করার জন্য।
পরীক্ষার জন্য প্রয়োজনীয় উপকরণ
সিস্টেমের নীতি
স্ক্রিনে প্রথম ট্যাপটি অবশ্যই O হতে হবে, স্ক্রিনের দ্বিতীয় ট্যাপটি X, এই চক্রটি করে আসছে। প্রতিটি গ্রিডের প্রতিটি সারি, কলাম এবং তির্যকটিতে O এবং X এর সংখ্যা সংরক্ষণ করতে 8টি অ্যারে সেট করুন, যতক্ষণ পর্যন্ত একই চিহ্নের তিনটি বিজয়ী হয়, তখন বিজয় প্রমাণ করার জন্য একটি ঝলকানি লাল বাক্স থাকবে। সারি, কলাম বা তির্যক, এবং তারপর আবার গেমটি শুরু করতে রিসেট আলতো চাপুন।
নিম্নলিখিত ফ্লো চার্ট:
STM32 এবং স্টোন LCD ডিসপ্লে সিস্টেম হার্ডওয়্যার ডিজাইন
(ক) স্টোন এলসিডি ডিসপ্লে
- "টিক-ট্যাক-টো গেম" হার্ডওয়্যার ডিজাইন
Beijing STONE Technology co., ltd-এর STONE LCD ডিসপ্লে ব্যবহার করুন, মডেলটি হল STWI070WT-01, একটি সমন্বিত TFT ডিসপ্লে এবং টাচ কন্ট্রোলার সহ।
- 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৷
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 এর মাধ্যমে পিসির সাথে সংযুক্ত থাকে এবং এক্সিকিউটেবল ফাইলটিকে স্ক্রিনে কপি করে।
প্রথমে নিচের মত একটি নতুন প্রজেক্ট তৈরি করুন।
দ্বিতীয়ত, সম্পদে সমস্ত ছবি আমদানি করুন
তারপর, প্রতিটি গ্রিডে বোতাম নিয়ন্ত্রণ সেট করুন এবং বোতামগুলিকে অদৃশ্য করে দিন।
রিসেট বোতাম সেট করতে ভুলবেন না!
সমাপ্ত প্রভাব নীচে দেখানো হয়েছে:
এর পরে, প্রতিটি গ্রিডে একইভাবে চিত্র নিয়ন্ত্রণ যুক্ত করুন এবং সেগুলিকে সাদা ছবিতে সেট করুন।
অবশেষে gif কন্ট্রোল যোগ করুন এবং এটিকে অদৃশ্যে সেট করুন।
সমাপ্ত প্রভাবের অংশগুলি নীচে দেখানো হয়েছে:
সার্কিট সংযোগ চিত্র
কোড ভাগ করা
/* অন্তর্ভুক্ত ———————————————————————*/
# "stm32f0xx_hal.h" অন্তর্ভুক্ত করুন
# "Uart.h" অন্তর্ভুক্ত করুন
# "string.h" অন্তর্ভুক্ত করুন
# "ws2812.h" অন্তর্ভুক্ত করুন
# "IWDG.h" অন্তর্ভুক্ত করুন
RGB_COLOR USER_RGB_COLOR;
স্বাক্ষরবিহীন চর TX_Mode = 1; //ট্রান্সমিশন টাইপ পতাকা বিট 1:232 0:TTL
স্বাক্ষরবিহীন চর BLINK_2=0;
স্বাক্ষরবিহীন চর RX3_BUF[32]; // কাস্টমাইজড থ্রি-লেভেল রিসিভ বাফার
# 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 ***** ফাইলের শেষ****/
চূড়ান্ত ফলাফল দেখায়
সূত্র: প্লেটো ডেটা ইন্টেলিজেন্স