当前位置: 首页 > news >正文

西部数码网站管理助手使用教程湖南系统建站怎么用

西部数码网站管理助手使用教程,湖南系统建站怎么用,赤峰市网站建设,国内搜索引擎排名1.游戏机的主要功能 所有游戏都来着B站JL单片机博主开源 这款游戏机具备存档与继续游戏功能#xff0c;允许玩家在任何时候退出当前游戏并保存进度#xff0c;以便日后随时并继续之前的冒险。不仅如此#xff0c;游戏机还支持多任务处理#xff0c;玩家可以在退出当前游戏…1.游戏机的主要功能 所有游戏都来着B站JL单片机博主开源 这款游戏机具备存档与继续游戏功能允许玩家在任何时候退出当前游戏并保存进度以便日后随时并继续之前的冒险。不仅如此游戏机还支持多任务处理玩家可以在退出当前游戏后无缝切换至其他游戏进行娱乐而当再次回到之前的游戏时进度将完好无损确保游戏体验的连续性和完整性。 除了游戏功能外这款游戏机还内置了视频播放功能。特别值得一提的是游戏机内置了一段蔡徐坤打篮球的精彩视频让玩家在享受游戏乐趣的同时也能欣赏到偶像的风采。 在游戏内容方面这款游戏机配备了6款精心挑选的游戏涵盖了多种类型和风格。 有谷歌小恐龙游戏贪吃蛇2048飞翔的小鸟飞机大战俄罗斯方块。 还拥有一个可以查询各个游戏状态的任务。 2.需要的硬件 材料数量stm32c8t6最小系统板1按键2摇杆2OLED屏幕1 3.游戏机原理 基于RTOS系统创建一个菜单函数的任务然后通过摇杆选择自己需要玩的游戏再按下按键 系统查询有没有创建该游戏任务如果有就继续该任务如果没有就参加一个新的任务。 进入游戏可以想退出时可以选择保存存档退出和直接退出返回到任务函数重新选择。菜单页面选择查询任务状态可以查看到那个游戏有存档那个游戏没有存档。 4.实现代码 摇杆和按键的底层代码 #include stm32f10x.h // Device header #include key.h #include delay.h uint8_t Key_KeyNumber; //**定时器扫描按键**// //采样次数 #define SAMPLES 30 int xw,yw,xw2,yw2; void Joystick_Init(void) {//开始GPIOB的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//将LDR引脚设为模拟输入GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStructure); }/******************************************************************* 函 数 名 称ADC_Joystick_Init* 函 数 说 明初始化ADC功能* 函 数 形 参无* 函 数 返 回无* 作 者LC* 备 注无 ******************************************************************/void ADC_Joystick_Init(void) {Joystick_Init();//开启ADC时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//ADC频率进行6分频RCC_ADCCLKConfig(RCC_PCLK2_Div6);//配置ADC结构体ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode ADC_Mode_Independent; //独立模式ADC_InitStructure.ADC_DataAlign ADC_DataAlign_Right; //数据右对齐ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None; //软件触发ADC_InitStructure.ADC_ContinuousConvMode DISABLE; //单次转换ADC_InitStructure.ADC_ScanConvMode DISABLE; //非扫描模式ADC_InitStructure.ADC_NbrOfChannel 1; //总通道数ADC_Init(ADC1, ADC_InitStructure); //初始化ADC1//开启ADC1ADC_Cmd(ADC1, ENABLE);//进行ADC校准ADC_ResetCalibration(ADC1);while(ADC_GetResetCalibrationStatus(ADC1) SET);ADC_StartCalibration(ADC1);while(ADC_GetCalibrationStatus(ADC1) SET); }/******************************************************************* 函 数 名 称Get_Adc_Joystick_Value* 函 数 说 明对DMA保存的数据进行平均值计算后输出* 函 数 形 参CHx 第几个扫描的数据* 函 数 返 回对应扫描的ADC值* 作 者LC* 备 注无 ******************************************************************/ unsigned int Get_Adc_Joystick_Value(char CHx) {uint32_t Data 0;//设置采集通道ADC_RegularChannelConfig( ADC1, CHx, 1, ADC_SampleTime_55Cycles5 );//开始软件转换ADC_SoftwareStartConvCmd(ADC1,ENABLE);while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); // 等待转换结束for(int i 0; i SAMPLES; i){Data ADC_GetConversionValue(ADC1);// Delay_ms(2);}Data Data / SAMPLES;return Data; }/******************************************************************* 函 数 名 称Get_MQ2_Percentage_value* 函 数 说 明读取摇杆值并且返回百分比* 函 数 形 参0读取摇杆左右值1读取摇杆上下值* 函 数 返 回返回百分比* 作 者LC* 备 注无 ******************************************************************/ unsigned int Get_Joystick_Percentage_value(char dir) {int adc_new 0;int Percentage_value 0;if( dir 0){adc_new Get_Adc_Joystick_Value(ADC_Channel_0);}else{adc_new Get_Adc_Joystick_Value(ADC_Channel_1);}Percentage_value ((float)adc_new/4095.0f) * 100.f;return Percentage_value; } unsigned int Get_Joystick2_Percentage_value(char dir) {int adc_new 0;int Percentage_value 0;if( dir 0){adc_new Get_Adc_Joystick_Value(ADC_Channel_2);}else{adc_new Get_Adc_Joystick_Value(ADC_Channel_3);}Percentage_value ((float)adc_new/4095.0f) * 100.f;return Percentage_value; } void GPIO_KeyInit(void) // 初始化GPIO {GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitTypeDef GPIO_InitStructure3;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin key_r_push_pin| key_l_push_pin;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(key_r_back_and_push_port, GPIO_InitStructure);GPIO_InitStructure3.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructure3.GPIO_Pin sw1_pin | sw2_pin;GPIO_InitStructure3.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(sw_port, GPIO_InitStructure3); }void Timer_Init(void) // 初始化定时器 {TIM_TimeBaseInitTypeDef TimeBaseInitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);TIM_InternalClockConfig(TIM2);TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1;TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up;TimeBaseInitStructure.TIM_Period 300 - 1;TimeBaseInitStructure.TIM_Prescaler 7200 - 1;TimeBaseInitStructure.TIM_RepetitionCounter 0;TIM_TimeBaseInit(TIM2, TimeBaseInitStructure);TIM_ClearFlag(TIM2, TIM_FLAG_Update);TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 2;NVIC_InitStructure.NVIC_IRQChannelSubPriority 1;NVIC_Init(NVIC_InitStructure);TIM_Cmd(TIM2, ENABLE); }uint8_t Key(void) // 获取按键值 {uint8_t Temp;Temp Key_KeyNumber;Key_KeyNumber 0;return Temp; }uint8_t Get_Key(void) // 获取电平变化 {uint8_t KeyNum 0;if((xw30)) KeyNum r_front_key_value;if((xw70)) KeyNum r_back_key_value;if((yw70)) KeyNum r_right_key_value;if((yw30)) KeyNum r_left_key_value;if((xw230)) KeyNum l_front_key_value;if((xw270)) KeyNuml_back_key_value;if((yw270)) KeyNuml_right_key_value;if((yw230)) KeyNuml_left_key_value;if (GPIO_ReadInputDataBit(key_r_back_and_push_port, key_r_push_pin) 0){KeyNum r_push_key_value;}if (GPIO_ReadInputDataBit(key_r_back_and_push_port, key_l_push_pin) 0){KeyNum l_push_key_value;}if (GPIO_ReadInputDataBit(sw_port, sw1_pin) 0){KeyNum sw1_key_value;}if (GPIO_ReadInputDataBit(sw_port, sw2_pin) 0){KeyNum sw2_key_value;}return KeyNum; }void Loop_Key(void) // 扫描按键 {static uint8_t LastKey 0, NowKey 0;LastKey NowKey;NowKey Get_Key();if (LastKey r_front_key_value NowKey 0){Key_KeyNumber r_front_key_value;}if (LastKey r_back_key_value NowKey 0){Key_KeyNumber r_back_key_value;}if (LastKey r_left_key_value NowKey 0){Key_KeyNumber r_left_key_value;}if (LastKey r_right_key_value NowKey 0){Key_KeyNumber r_right_key_value;}if (LastKey r_push_key_value NowKey 0){Key_KeyNumber r_push_key_value;}if (LastKey l_front_key_value NowKey 0){Key_KeyNumber l_front_key_value;}if (LastKey l_back_key_value NowKey 0){Key_KeyNumber l_back_key_value;}if (LastKey l_left_key_value NowKey 0){Key_KeyNumber l_left_key_value;}if (LastKey l_right_key_value NowKey 0){Key_KeyNumber l_right_key_value;}if (LastKey l_push_key_value NowKey 0){Key_KeyNumber l_push_key_value;}if (LastKey sw1_key_value NowKey 0){Key_KeyNumber sw1_key_value;}if (LastKey sw2_key_value NowKey 0){Key_KeyNumber sw2_key_value;}}void Key_Init(void) // 按键初始化 {GPIO_KeyInit();Timer_Init();ADC_Joystick_Init(); }void TIM2_IRQHandler(void) // 定时器扫描30ms {if (TIM_GetITStatus(TIM2, TIM_IT_Update) 1){xwGet_Joystick_Percentage_value(0);ywGet_Joystick_Percentage_value(1);xw2Get_Joystick2_Percentage_value(0);yw2Get_Joystick2_Percentage_value(1);Loop_Key();TIM_ClearITPendingBit(TIM2, TIM_IT_Update);} }菜单任务逻辑 int menu(void) {while (1){//查询是否创建该任务vTaskGetInfo(game1_Handler, game1_state, pdTRUE, eInvalid);vTaskGetInfo(game2_Handler, game2_state, pdTRUE, eInvalid);vTaskGetInfo(game3_Handler, game3_state, pdTRUE, eInvalid);vTaskGetInfo(game4_Handler, game4_state, pdTRUE, eInvalid);vTaskGetInfo(game5_Handler, game5_state, pdTRUE, eInvalid);vTaskGetInfo(game6_Handler, game6_state, pdTRUE, eInvalid);vTaskGetInfo(game7_Handler, game7_state, pdTRUE, eInvalid);vTaskGetInfo( info_Handler, info_state, pdTRUE, eInvalid);vTaskGetInfo(Video_Handler, info_state, pdTRUE, eInvalid);B_OLED_Clear();//显示ui界面if(select6){B_OLED_ShowString(14, 20, 1, B_OLED_8X16);B_OLED_ShowString(14 (length_x distance_x) * 1, 20, 2, B_OLED_8X16);B_OLED_ShowString(14 (length_x distance_x) * 2, 20, 3, B_OLED_8X16);B_OLED_ShowString(14 (length_x distance_x) * 3, 20, 4, B_OLED_8X16);B_OLED_ShowString(35, 50, freeRTOS, B_OLED_6X8);B_OLED_DrawRectangle(distance_x, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x length_x distance_x, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x (length_x distance_x) * 2, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x (length_x distance_x) * 3, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x, length_y distance_y2 distance_y, length_x (distance_x length_x) * 3, length_y2, B_OLED_UNFILLED);if (select 1){sprintf(text_menu, Menu:dragon);B_OLED_ReverseArea(distance_x, distance_y, length_x, length_y);}else if (select 2){sprintf(text_menu, Menu:war);B_OLED_ReverseArea(distance_x length_x distance_x, distance_y, length_x, length_y);}else if (select 3){sprintf(text_menu, Menu:bird);B_OLED_ReverseArea(distance_x (length_x distance_x) * 2, distance_y, length_x, length_y);}else if (select 4){sprintf(text_menu, Menu:block);B_OLED_ReverseArea(distance_x (length_x distance_x) * 3, distance_y, length_x, length_y);}else if (select 5){sprintf(text_menu, Menu:info);B_OLED_ReverseArea(distance_x, length_y distance_y2 distance_y, length_x (distance_x length_x) * 3, length_y2);} }if(select6){B_OLED_ShowString(14, 20, 6, B_OLED_8X16);B_OLED_ShowString(14 (length_x distance_x) * 1, 20, 7, B_OLED_8X16);B_OLED_ShowString(14 (length_x distance_x) * 2, 20, 8, B_OLED_8X16);B_OLED_ShowString(14 (length_x distance_x) * 3, 20, 9, B_OLED_8X16);B_OLED_ShowString(35, 50, freeRTOS, B_OLED_6X8);B_OLED_DrawRectangle(distance_x, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x length_x distance_x, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x (length_x distance_x) * 2, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x (length_x distance_x) * 3, distance_y, length_x, length_y, B_OLED_UNFILLED);B_OLED_DrawRectangle(distance_x, length_y distance_y2 distance_y, length_x (distance_x length_x) * 3, length_y2, B_OLED_UNFILLED);if (select 6) B_OLED_ReverseArea(distance_x, distance_y, length_x, length_y),sprintf(text_menu, Menu:Snake);if (select 7) B_OLED_ReverseArea(distance_x length_x distance_x, distance_y, length_x, length_y),sprintf(text_menu, Menu:Video);if (select 8) B_OLED_ReverseArea(distance_x (length_x distance_x) * 2, distance_y, length_x, length_y),sprintf(text_menu, Menu:2048);if (select 9) B_OLED_ReverseArea(distance_x (length_x distance_x) * 3, distance_y, length_x, length_y),sprintf(text_menu, Menu:no);if (select 10) B_OLED_ReverseArea(distance_x, length_y distance_y2 distance_y, length_x (distance_x length_x) * 3, length_y2),sprintf(text_menu, Menu:info);;}//判断改任务是否存在存在上面显示runif ((game1_state.eCurrentState eRunning) || (game1_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 1)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((game2_state.eCurrentState eRunning) || (game2_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 (length_x distance_x) * 1 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 2)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((game3_state.eCurrentState eRunning) || (game3_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 (length_x distance_x) * 2 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 3)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((game4_state.eCurrentState eRunning) || (game4_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 (length_x distance_x) * 3 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 4)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((game5_state.eCurrentState eRunning) || (game5_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 6)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((game6_state.eCurrentState eRunning) || (game6_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 8)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((game7_state.eCurrentState eRunning) || (game7_state.eCurrentState eSuspended)){B_OLED_DrawCircle(15 offset_state_x, 20 offset_state_y, 2, B_OLED_UNFILLED);if (select 9)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((info_state.eCurrentState eRunning) || (info_state.eCurrentState eSuspended)){B_OLED_DrawCircle(35 offset_state_x2, 50 offset_state_y2, 2, B_OLED_UNFILLED);if (select 5||select 10)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}if ((Video_state.eCurrentState eRunning) || (Video_state.eCurrentState eSuspended)){B_OLED_DrawCircle(35 offset_state_x2, 50 offset_state_y2, 2, B_OLED_UNFILLED);if (select 7)B_OLED_ShowString(110, 0, run, B_OLED_6X8);}B_OLED_ShowString(0, 0, text_menu, B_OLED_8X16);menu_key_num Get_Key();if (menu_key_num ! 0){if ((menu_key_num r_push_key_value) || (menu_key_num l_push_key_value)){return select;}switch (menu_key_num){case r_right_key_value:select;break;case r_left_key_value:select--;break;case r_back_key_value:select 4;break;case r_front_key_value:select - 4;case l_right_key_value:select;break;case l_left_key_value:select--;break;case l_back_key_value:select 4;break;case l_front_key_value:select - 4;default:break;}if (select 10)select 10;if (select 1)select 1;while (menu_key_num ! 0){menu_key_num Get_Key();}}B_OLED_Update();} } 游戏任务逻辑 void startup() {init();while(1){B_OLED_Clear();FrameLoop(); // KeyLoop();GameLoop();B_OLED_Update();if (get_key_status() sw1_key_value){vTaskResume(menuTask_Handler);vTaskSuspend(game6_Handler);}else if (get_key_status() sw2_key_value){vTaskResume(menuTask_Handler);vTaskDelete(game6_Handler);}}}查询任务状态和存档状态 int infos(){B_OLED_Clear();vTaskGetInfo(game1_Handler, game1_state, pdTRUE, eInvalid);vTaskGetInfo(game2_Handler, game2_state, pdTRUE, eInvalid);vTaskGetInfo(game3_Handler, game3_state, pdTRUE, eInvalid);vTaskGetInfo(game4_Handler, game4_state, pdTRUE, eInvalid);vTaskGetInfo(game1_Handler, game5_state, pdTRUE, eInvalid);vTaskGetInfo(game2_Handler, game6_state, pdTRUE, eInvalid);vTaskGetInfo(game3_Handler, game7_state, pdTRUE, eInvalid);vTaskGetInfo(game4_Handler, Video_state, pdTRUE, eInvalid);B_OLED_ShowString(0, 0, game1, B_OLED_6X8);switch (game1_state.eCurrentState){case eRunning:B_OLED_ShowString(0, text_height1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(0, text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(0, text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(0, text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(0, text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(0, text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game1_state.uxBasePriority);B_OLED_ShowString(0, 2 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game1_state.usStackHighWaterMark);// B_OLED_ShowString(0, 3 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(0, 4 * text_height 1, game2, B_OLED_6X8);switch (game2_state.eCurrentState){case eRunning:B_OLED_ShowString(0, 5 * text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(0, 5 * text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(0, 5 * text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(0, 5 * text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(0, 5 * text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(0, 5 * text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game2_state.uxBasePriority);B_OLED_ShowString(0, 6 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game2_state.usStackHighWaterMark);// B_OLED_ShowString(0, 7 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(half, 0, game3, B_OLED_6X8);switch (game3_state.eCurrentState){case eRunning:B_OLED_ShowString(half, text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(half, text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(half, text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(half, text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(half, text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(half, text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game3_state.uxBasePriority);B_OLED_ShowString(half, 2 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game3_state.usStackHighWaterMark);// B_OLED_ShowString(half, 3 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(half, 4 * text_height 1, game4, B_OLED_6X8);switch (game4_state.eCurrentState){case eRunning:B_OLED_ShowString(half, 5 * text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(half, 5 * text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(half, 5 * text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(half, 5 * text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(half, 5 * text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(half, 5 * text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game4_state.uxBasePriority);B_OLED_ShowString(half, 6 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game4_state.usStackHighWaterMark);// B_OLED_ShowString(half, 7 * text_height 1, text, B_OLED_6X8);B_OLED_Update();int a0;while (1){if (((get_key_status() l_right_key_value)||(get_key_status() r_right_key_value))(a0)){ a1;B_OLED_Clear();B_OLED_ShowString(0, 0, game5, B_OLED_6X8);switch (game5_state.eCurrentState){case eRunning:B_OLED_ShowString(0, text_height1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(0, text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(0, text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(0, text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(0, text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(0, text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game5_state.uxBasePriority);B_OLED_ShowString(0, 2 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game1_state.usStackHighWaterMark);// B_OLED_ShowString(0, 3 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(0, 4 * text_height 1, game6, B_OLED_6X8);switch (game6_state.eCurrentState){case eRunning:B_OLED_ShowString(0, 5 * text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(0, 5 * text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(0, 5 * text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(0, 5 * text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(0, 5 * text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(0, 5 * text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game6_state.uxBasePriority);B_OLED_ShowString(0, 6 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game2_state.usStackHighWaterMark);// B_OLED_ShowString(0, 7 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(half, 0, game7, B_OLED_6X8);switch (game7_state.eCurrentState){case eRunning:B_OLED_ShowString(half, text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(half, text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(half, text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(half, text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(half, text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(half, text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game7_state.uxBasePriority);B_OLED_ShowString(half, 2 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game3_state.usStackHighWaterMark);// B_OLED_ShowString(half, 3 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(half, 4 * text_height 1, Video, B_OLED_6X8);switch (Video_state.eCurrentState){case eRunning:B_OLED_ShowString(half, 5 * text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(half, 5 * text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(half, 5 * text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(half, 5 * text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(half, 5 * text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(half, 5 * text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, Video_state.uxBasePriority);B_OLED_ShowString(half, 6 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game4_state.usStackHighWaterMark);// B_OLED_ShowString(half, 7 * text_height 1, text, B_OLED_6X8);B_OLED_Update();}if (((get_key_status() l_left_key_value)||(get_key_status() r_left_key_value))(a1)){a0;B_OLED_Clear();B_OLED_ShowString(0, 0, game1, B_OLED_6X8);switch (game1_state.eCurrentState){case eRunning:B_OLED_ShowString(0, text_height1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(0, text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(0, text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(0, text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(0, text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(0, text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game1_state.uxBasePriority);B_OLED_ShowString(0, 2 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game1_state.usStackHighWaterMark);// B_OLED_ShowString(0, 3 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(0, 4 * text_height 1, game2, B_OLED_6X8);switch (game2_state.eCurrentState){case eRunning:B_OLED_ShowString(0, 5 * text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(0, 5 * text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(0, 5 * text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(0, 5 * text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(0, 5 * text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(0, 5 * text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game2_state.uxBasePriority);B_OLED_ShowString(0, 6 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game2_state.usStackHighWaterMark);// B_OLED_ShowString(0, 7 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(half, 0, game3, B_OLED_6X8);switch (game3_state.eCurrentState){case eRunning:B_OLED_ShowString(half, text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(half, text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(half, text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(half, text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(half, text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(half, text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game3_state.uxBasePriority);B_OLED_ShowString(half, 2 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game3_state.usStackHighWaterMark);// B_OLED_ShowString(half, 3 * text_height 1, text, B_OLED_6X8);B_OLED_ShowString(half, 4 * text_height 1, game4, B_OLED_6X8);switch (game4_state.eCurrentState){case eRunning:B_OLED_ShowString(half, 5 * text_height 1, eRunning, B_OLED_6X8);break;case eReady:B_OLED_ShowString(half, 5 * text_height 1, eReady, B_OLED_6X8);break;case eBlocked:B_OLED_ShowString(half, 5 * text_height 1, eBlocked, B_OLED_6X8);break;case eSuspended:B_OLED_ShowString(half, 5 * text_height 1, eSuspended, B_OLED_6X8);break;case eDeleted:B_OLED_ShowString(half, 5 * text_height 1, eDeleted, B_OLED_6X8);break;case eInvalid:B_OLED_ShowString(half, 5 * text_height 1, eInvalid, B_OLED_6X8);break;default:break;}sprintf(text, pro:%1d, game4_state.uxBasePriority);B_OLED_ShowString(half, 6 * text_height 1, text, B_OLED_6X8);// sprintf(text, stack:%1d, game4_state.usStackHighWaterMark);// B_OLED_ShowString(half, 7 * text_height 1, text, B_OLED_6X8);B_OLED_Update();}if (get_key_status() sw1_key_value){B_OLED_Clear();B_OLED_Update();vTaskResume(menuTask_Handler);vTaskSuspend(info_Handler);}else if (get_key_status() sw2_key_value){B_OLED_Clear();B_OLED_Update();vTaskResume(menuTask_Handler);vTaskDelete(info_Handler);}}}-----------------------欢迎大家指正交流有空可以一起讨论代码啊。-------------------------------- 通过网盘分享的文件stm32_FreeRTOS_Game-master.zip 链接: https://pan.baidu.com/s/1UAAb-8cHPl7ZP1pRVyJMAA 提取码: qpgg
http://www.dnsts.com.cn/news/25566.html

相关文章:

  • 合肥网站设计建自己如何建设网站步骤
  • 百度网站权重排名php做商城网站步骤
  • 阿里买域名 电脑做网站有什么网站可以做3d
  • 免费个人网页制作网站营销网址大全
  • 祥云县住房和城乡建设网站建设电子商务网站的步骤
  • 网站后台更新 前台不显示最新经济新闻及其评论
  • 网站远程图片东莞做外贸网站公司
  • 网站前端交互功能案例分析室内设计师讲解方案话术
  • 烟台网站建设多少钱网络培训的优点包括
  • 图书销售网站开发与实现济南手机网站建设
  • 试用网站空间平面设计接单赚钱吗
  • 做网站必须会编程吗国内做外单的网站有哪些
  • 灵璧零度网站建设wordpress 微信咨询代码
  • 吴镇宇做的电影教学网站wordpress阅读积分
  • html网站的上传前端培训机构排名
  • 个人网站要求我英文网站建设
  • 网站建设 海拉尔企业建设网站的必要性
  • 学校网站首页设计pc 手机站网站制作
  • 网页设计和网站编辑建设网站群的指导思想
  • 正版win10做win7系统下载网站企业网站建设的公司价格
  • 信息手机网站模板下载软件网站设计公司营销crm系统
  • 搜索网站入口免费的网页设计成品资源
  • 西宁那有做网站的网站空间 域名
  • 仿qq网站程序网站建设首选 云端高科
  • 沙井网站建设七种人不宜学软件工程
  • 有什么网站可以做问卷调查wordpress 评论邮箱改成电话
  • 云南做企业建站python 网站开发 普及
  • 东莞市建设局门户网站商务网站内容维护和管理的范围
  • 网站建设的主题手机制作网站的软件
  • 南宁网站推广经理企业管理咨询的工作主体