高职物联网页面切换

1|0高职物联网页面切换

1|1题目

使用一个LoRa模块完成LoRa模块上的屏幕输出控制并实现功能,使用提供的未完成工程进行开发。

任务要求:

Ø 通电后LED1、LED2灭,液晶屏显示如下信息:


主菜单 K2.Formula K3.WIFI K4.QRCode

Ø 当按下KEY2时,LED1亮,LED2灭并显示LXD数学公式,参数X为电流值,***表示公式:

Formula F:*************

Ø 当按下KEY3时,LED1灭,LED2亮并显示如下:

WIFI

img

Ø 当按下KEY4时,LED1亮,LED2亮并显示如下。

QRCode

img

Ø 能重复实现以上2~4的操作。

Ø 需调用封装的API实现。

1|2分析

  • 题目很明白

1|3代码

/** ****************************************************************************** * File Name : main.c * Description : Main program body ****************************************************************************** */ #include <string.h> #include "board.h" #include "hal_key.h" #include "tim-board.h" #include "timer_handles.h" uint8_t State = 0; uint8_t ZCD[][32] ={ 0x00,0x08,0x08,0x08,0x08,0x08,0x09,0xFA,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00, 0x40,0x40,0x41,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x41,0x40,0x40,0x00, 0x04,0x04,0x44,0xC4,0x4F,0x44,0x44,0xC4,0x24,0x24,0x2F,0xB4,0x24,0x04,0x04,0x00, 0x40,0x44,0x24,0x24,0x15,0x0C,0x04,0xFE,0x04,0x0C,0x15,0x24,0x24,0x44,0x40,0x00, 0x00,0x00,0xF8,0x49,0x4A,0x4C,0x48,0xF8,0x48,0x4C,0x4A,0x49,0xF8,0x00,0x00,0x00, 0x10,0x10,0x13,0x12,0x12,0x12,0x12,0xFF,0x12,0x12,0x12,0x12,0x13,0x10,0x10,0x00, }; uint8_t QC_Code[]={ /*-- ???????:D:\?????_?????\?????????.assets\QC Code.bmp --*/ /*-- ??x??=48x48 --*/ 0xAC,0xFF,0xFE,0xFE,0xFE,0xDE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF, 0xFF,0xAC,0xFF,0xFF,0xFF,0xBD,0xFE,0x9F,0x9F,0xFF,0xFF,0xFE,0x8D,0x8D,0xAC,0xFF, 0xFE,0xFE,0xDE,0xDE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xDF,0xFF,0xFE,0xFE,0xFF,0xD2, 0xB7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF, 0xFF,0x43,0xFF,0xFF,0xFF,0xFF,0xBF,0xBF,0xBF,0xFF,0xFF,0xFF,0xF7,0xF7,0xC9,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC5, 0x5E,0x13,0xAF,0xAF,0xF3,0xFD,0xFD,0xFF,0xFF,0xFF,0xF3,0xFD,0xF1,0xF1,0x7D,0xFF, 0xFD,0xF1,0xFF,0xFF,0xF3,0x7F,0xFF,0x5D,0x5D,0xFF,0xFF,0xFF,0x5F,0x5F,0xFE,0x71, 0x7D,0x9F,0xBD,0xBD,0xFD,0x1F,0xDF,0xFF,0xFF,0xFD,0xFF,0xFF,0xDF,0xDF,0xFD,0x31, 0x88,0xFE,0xFF,0xFF,0xFF,0xBB,0xBD,0xBF,0xBF,0xFF,0xC7,0x8B,0xBF,0xBF,0xB2,0xBF, 0xBF,0x77,0xFB,0xFB,0xFF,0xFE,0xFF,0xF2,0xF2,0xFF,0xFF,0xFF,0xBE,0xBE,0xFF,0xBE, 0xFA,0xF7,0xFD,0xFD,0xFB,0xFE,0xCF,0xFF,0xFF,0xFB,0xFF,0xBF,0x77,0x77,0xB7,0x84, 0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF, 0xFF,0xDE,0xED,0xED,0xD0,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xEF,0xFF, 0x7C,0xFF,0xFF,0xFF,0xBF,0xFE,0xEE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFD,0xFE,0xDE, 0x45,0x7F,0x7F,0x7F,0xFF,0x7B,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x7F, 0xFF,0x7D,0x03,0x03,0xFD,0x7F,0xFD,0x4F,0x4F,0x8D,0x8F,0x7F,0x7D,0x7D,0xFF,0xFD, 0x36,0x7B,0xFF,0xFF,0x7F,0x7F,0x3D,0xFF,0xFF,0x7F,0xFB,0xFF,0xCF,0xCF,0x0F,0x75, }; uint8_t wifi[] = { /*-- ???????:D:\?????_?????\?????????.assets\wifi.bmp --*/ /*-- ??x??=48x48 --*/ 0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xE0,0xE0,0xF0,0xF8,0xF8,0xF8,0xFE,0xFE,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE, 0xFE,0xF8,0xF8,0xF8,0xF0,0xE0,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xF0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0x1F,0x8F,0x8F,0x87, 0xE7,0xE7,0xE7,0xE7,0xE1,0xE1,0xE1,0xE1,0xE1,0xE1,0xE7,0xE7,0xE7,0x87,0x87,0x8F, 0x8F,0x1F,0x1F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xF0,0x00,0x00, 0x00,0x01,0x0F,0x0F,0x0F,0x0F,0x0F,0xE7,0xF1,0xF0,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF, 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFE,0xFE,0xF8,0xF1,0xE1,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x0F,0x0F,0x87,0xF1,0xF0,0xF8, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xF8,0xF8,0xF1, 0xF1,0x87,0x0F,0x0F,0x0F,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x1F, 0x1F,0x1F,0x1F,0x0F,0x8F,0x87,0xE7,0xE7,0x87,0x8F,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F, 0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x0F,0x7F,0x7F,0x7F,0x7F,0x0F,0x07,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; void KEY_STATE(); /********************************************************************************************** *º¯Êý£ºvoid Init( void ) *¹¦ÄÜ£ºÆ½Ì¨³õʼ»¯ *ÊäÈ룺ÎÞ *Êä³ö£ºÎÞ *ÌØÊâ˵Ã÷£ºÎÞ **********************************************************************************************/ void Init() { // ¿ª·¢°åƽ̨³õʼ»¯ BoardInitMcu(); BoardInitPeriph(); keys_init();//°´¼ü³õʼ»¯ setTimer2Callback(Time2Handler); Tim2McuInit(1);//¶¨Ê±Æ÷³õʼ»¯£¬ÉèÖö¨Ê±ÖжÏ1msÖжÏÒ»´Î } /********************************************************************************************** *º¯Êý£ºvoid KeyDownHandler( void ) *¹¦ÄÜ£º°´Å¥Ê¼þ¼àÌý *ÊäÈ룺ÎÞ *Êä³ö£ºÎÞ *ÌØÊâ˵Ã÷£ºÎÞ **********************************************************************************************/ void KeyDownHandler(void) { if(isKey2Pressed()){ OLED_Clear(); resetKey2(); State = 1; KEY_STATE(); } if(isKey3Pressed()){ OLED_Clear(); resetKey3(); State = 2; KEY_STATE(); } if(isKey4Pressed()){ OLED_Clear(); resetKey4(); State = 3; KEY_STATE(); } } /********************************************************************************************** *º¯Êý£ºvoid handlerPre10Ms( void ) *¹¦ÄÜ£º10ºÁÃëÑ­»· *ÊäÈ룺ÎÞ *Êä³ö£ºÎÞ *ÌØÊâ˵Ã÷£ºÑ­»·´¦Àí×Üʱ³¤300ms **********************************************************************************************/ void handlerPre10Ms(void) { for (int delay = 0; delay < 30; delay++) { HAL_Delay(10); } } void KEY_STATE(){ if(State == 0){ OLED_ShowCHineseArray(40,0,ZCD[0]);OLED_ShowCHineseArray(40+16,0,ZCD[1]);OLED_ShowCHineseArray(40+32,0,ZCD[2]); OLED_ShowString(16,2,"K2.Formula ");OLED_ShowString(16,4,"K3.WIFI ");OLED_ShowString(16,6,"K4.QRCode "); } if(State == 1){ OLED_ShowString(32,0,"Formula "); OLED_ShowString(0,3,"F:*************"); } if(State == 2){ OLED_ShowString(48,0,"WIFI"); OLED_DrawBMP(40,2,48,48,wifi); } if(State == 3){ OLED_ShowString(40,0,"QRCode"); OLED_DrawBMP(40,2,48,48,QC_Code); } } /** * Main application entry point. */ int main( void ) { Init(); OLED_Init(); OLED_Clear(); KEY_STATE(); while( 1 ) { KeyDownHandler(); } }

__EOF__

本文作者~内个臣呐~
本文链接https://www.cnblogs.com/Xin-chen/p/16798219.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ~内个臣呐~  阅读(261)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示