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卷相关推荐

  1. 物联网国赛LORA模块开发基础教程(通用库)—点对点通信

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  2. 物联网国赛LORA模块开发基础教程(通用库)—传感器

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  3. 物联网国赛LORA模块开发基础教程(通用库)—串口收发

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  4. 物联网国赛LORA模块开发基础教程(通用库)—输出(LED)

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  5. 物联网国赛LORA模块开发基础教程(通用库)—OLED屏幕

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  6. 物联网国赛LORA模块开发基础教程(通用库)—定时器

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  7. 物联网国赛LORA模块开发基础教程(通用库)—输入(按键)

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  8. 物联网国赛LORA模块开发基础教程(通用库)—读写内部FALSH

    LORA模块开发基础教程目录 物联网国赛LORA模块开发基础教程-开发环境配置 物联网国赛LORA模块开发基础教程-输出(LED) 物联网国赛LORA模块开发基础教程-输入(按键) 物联网国赛LORA ...

  9. 物联网国赛LORA模块开发教程(通用库)—Keil添加注释的快捷键

    LORA模块开发教程目录 物联网国赛LORA模块开发教程-开发环境配置 物联网国赛LORA模块开发教程-Keil添加注释的快捷键 物联网国赛LORA模块开发教程-点亮第一颗LED灯 物联网国赛LORA ...

最新文章

  1. webpack - 收藏集 - 掘金
  2. SAP ABAP Netweaver Authorization trace tool - SAP ABAP 权限跟踪监控工具
  3. 宜家:打造新零售时代的智能客户身份管理系统
  4. 给linux添加新硬盘
  5. html input触发器类型,几种触发器的Verliog语言描述
  6. 中国智能手机行业的江湖事
  7. 网站设计必备:网页经典代码(转)
  8. 计算机主板图解内存插槽,图解电脑主板上的常见部件 -电脑资料
  9. Termux-API 使用教程,很多坑,电量,设备信息
  10. Win10 企业版 2016长期服务版 激活
  11. 爬虫抓取百度文库中的文献
  12. 新型传感器将改变大脑控制的机器人技术
  13. SpringBoot整合银联支付
  14. [Pytorch系列-42]:工具集 - torchvision常见预训练模型的下载地址
  15. vue吸管拾色器、利用canvas获取坐标点颜色、canvas获取坐标点颜色图片跨域、图片转base64、colorPicker
  16. 瓜子二手车2019秋招算法笔试卷1
  17. trainging contest#1(2011大连现场赛)I BY bly
  18. Python3.8+OpenCV4 实现二维码扫码
  19. 从python菜鸟到kaggle_Kaggle首次定义数据科学家:30岁,年薪5万刀,爱Python,最恨脏数据-阿里云开发者社区...
  20. 浅谈新手站长在网站运营中如何去养站?

热门文章

  1. 安卓教程----第一行代码学习笔记
  2. 深入浅出JBoss Seam
  3. Arduino IDE使用esp8266 usb ttl接线说明
  4. 位运算(转自matrix67)
  5. 台式中端计算机配置单,2020中端游戏台式电脑组装配置单
  6. 自动化测试注册接口,如何生成大量临时邮箱和获取邮箱验证码
  7. 工业自动化控制通讯协议库,工业自动软件必备的基本程序
  8. 立体匹配——SAD算法
  9. 等非涉密计算机存储涉密文件,非涉密计算机保密管理规定(1页)-原创力文档...
  10. 关于VS找不到“服务器资源管理器”的问题