2021物联网国赛Lora模块通用库开发——A卷
2021物联网国赛Lora模块通用库开发——A卷
1:声明全局变量和导入本次所使用到的包
#include "hal_oled.h"
int Stat_key=0; //记录按键次数
2:定义按键
注:新大陆Lora开发板当中只有三个按键,位置不能写错
#define KEY2 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)
#define KEY3 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)
#define KEY4 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)
3:声明一个函数用于对按键进行实时扫描
void Scanf_key()
{if(KEY2==0) //当按键2被按时{HAL_Delay(1); //按键消抖if(KEY2==0) //再次确认按键被按下时{OLED_ShowString(120,2*Stat_key,(uint8_t *)" "); //当"<"往下移动时原来的位置使用空格代替Stat_key--; //KEY2按下每次减1if(Stat_key==-1) //防止屏幕溢出{Stat_key=2;}OLED_ShowString(120,2*Stat_key,(uint8_t *)"<");while(KEY2==0);}}if(KEY3==0){HAL_Delay(1);if(KEY3==0){OLED_ShowString(120,2*Stat_key,(uint8_t *)" ");Stat_key++; //KEY3按下每次加一if(Stat_key==3){Stat_key=0;}OLED_ShowString(120,2*Stat_key,(uint8_t *)"<");while(KEY3==0);}}
}
注:1:Lora模块的OLED屏的行数分别是0 2 4 6如果小于0或者大于6时显示会出现错误
2:2*Stat_key因为一个字符在OLED屏当中占据两个字符 当KEY3按下时Start_key会从一开始的0变成1 所以"<“会从第0行出现在第 二行 而之前第0行的”<"由于空格来进行代替。
4:main函数
int main( void )
{Init();OLED_Init(); //初始化OLED屏OLED_ShowString(120,2*Stat_key,(uint8_t *)"<"); //初始位置在第0行while( 1 ){Scanf_key(); //调用按键扫描函数OLED_ShowString(0,0,(uint8_t *)"Number");OLED_ShowString(0,2,(uint8_t *)"NBIOT");OLED_ShowString(0,4,(uint8_t *)"C51");}
}
5:全部代码
/********************************************************************************* 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"
#include "hal_oled.h"
int Stat_key=0;/**********************************************************************************************
*函数:void Init( void )
*功能:平台初始化
*输入:无
*输出:无
*特殊说明:无
**********************************************************************************************/
void Init() {// 开发板平台初始化BoardInitMcu();BoardInitPeriph();keys_init();//按键初始化setTimer2Callback(Time2Handler);Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次}/**********************************************************************************************
*函数:void KeyDownHandler( void )
*功能:按钮事件监听
*输入:无
*输出:无
*特殊说明:无
**********************************************************************************************/
void KeyDownHandler(void) {}/**********************************************************************************************
*函数:void handlerPre10Ms( void )
*功能:10毫秒循环
*输入:无
*输出:无
*特殊说明:循环处理总时长300ms
**********************************************************************************************/
void handlerPre10Ms(void) {for (int delay = 0; delay < 30; delay++) {HAL_Delay(10);}
}
#define KEY2 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)
#define KEY3 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)
#define KEY4 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5)void Scanf_key()
{if(KEY2==0){HAL_Delay(1);if(KEY2==0){OLED_ShowString(120,2*Stat_key,(uint8_t *)" ");Stat_key--;if(Stat_key==-1){Stat_key=2;}OLED_ShowString(120,2*Stat_key,(uint8_t *)"<");while(KEY2==0);}}if(KEY3==0){HAL_Delay(1);if(KEY3==0){OLED_ShowString(120,2*Stat_key,(uint8_t *)" ");Stat_key++;if(Stat_key==3){Stat_key=0;}OLED_ShowString(120,2*Stat_key,(uint8_t *)"<");while(KEY3==0);}}
}
/*** Main application entry point.*/
int main( void )
{Init();OLED_Init();OLED_ShowString(120,2*Stat_key,(uint8_t *)"<");while( 1 ){Scanf_key();OLED_ShowString(0,0,(uint8_t *)"Number");OLED_ShowString(0,2,(uint8_t *)"NBIOT");OLED_ShowString(0,4,(uint8_t *)"C51");}
}
最后:如有纰漏,望各位多多包涵!!!
2021物联网国赛Lora模块通用库开发——A卷相关推荐
- 物联网国赛LORA模块开发基础教程(通用库)—点对点通信
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—传感器
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—串口收发
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—输出(LED)
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—OLED屏幕
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—定时器
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—输入(按键)
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发基础教程(通用库)—读写内部FALSH
LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...
- 物联网国赛LORA模块开发教程(通用库)—Keil添加注释的快捷键
LORA模块开发教程目录 物联网国赛LORA模块开发教程-开发环境配置 物联网国赛LORA模块开发教程-Keil添加注释的快捷键 物联网国赛LORA模块开发教程-点亮第一颗LED灯 物联网国赛LORA ...
最新文章
- webpack - 收藏集 - 掘金
- SAP ABAP Netweaver Authorization trace tool - SAP ABAP 权限跟踪监控工具
- 宜家:打造新零售时代的智能客户身份管理系统
- 给linux添加新硬盘
- html input触发器类型,几种触发器的Verliog语言描述
- 中国智能手机行业的江湖事
- 网站设计必备:网页经典代码(转)
- 计算机主板图解内存插槽,图解电脑主板上的常见部件 -电脑资料
- Termux-API 使用教程,很多坑,电量,设备信息
- Win10 企业版 2016长期服务版 激活
- 爬虫抓取百度文库中的文献
- 新型传感器将改变大脑控制的机器人技术
- SpringBoot整合银联支付
- [Pytorch系列-42]:工具集 - torchvision常见预训练模型的下载地址
- vue吸管拾色器、利用canvas获取坐标点颜色、canvas获取坐标点颜色图片跨域、图片转base64、colorPicker
- 瓜子二手车2019秋招算法笔试卷1
- trainging contest#1(2011大连现场赛)I BY bly
- Python3.8+OpenCV4 实现二维码扫码
- 从python菜鸟到kaggle_Kaggle首次定义数据科学家:30岁,年薪5万刀,爱Python,最恨脏数据-阿里云开发者社区...
- 浅谈新手站长在网站运营中如何去养站?
热门文章
- 安卓教程----第一行代码学习笔记
- 深入浅出JBoss Seam
- Arduino IDE使用esp8266 usb ttl接线说明
- 位运算(转自matrix67)
- 台式中端计算机配置单,2020中端游戏台式电脑组装配置单
- 自动化测试注册接口,如何生成大量临时邮箱和获取邮箱验证码
- 工业自动化控制通讯协议库,工业自动软件必备的基本程序
- 立体匹配——SAD算法
- 等非涉密计算机存储涉密文件,非涉密计算机保密管理规定(1页)-原创力文档...
- 关于VS找不到“服务器资源管理器”的问题