高职物联网页面切换
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
Ø 当按下KEY4时,LED1亮,LED2亮并显示如下。
QRCode
Ø 能重复实现以上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 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Xin-chen/p/16798219.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律