一、任务要求

1、第一次双击key3使得OLED屏幕显示工位号

2、第二次双击key3使得OLED屏幕显示某个图标

3、第三次双击key3使得OLED屏幕环境监测

4、能实现以上三步循环操作

二、代码main.c文件编写

#include <string.h>
#include "board.h"
#include "hal_key.h"
#include "tim-board.h"
#include "timer_handles.h"#include "hal_oled.h"
#include "adc_reader.h"
#include "math.h"     //获取pow计算x的y次幂函数
#include "sht3x.h"    //温湿度
void Init() {BoardInitMcu();BoardInitPeriph();keys_init();//按键初始化setTimer2Callback(Time2Handler);Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次OLED_Init();     //OLED初始化OLED_Clear();ADCS_Init();      //ADC初始化
}
void number()    //显示工位号
{OLED_ShowString(56,3,(uint8_t *)"01");
}
uint8_t tubiao[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xE0,0xF0,0xF8,0xF8,0x7C,0x7C,0x3E,
0x3E,0x3E,0x1F,0x1F,0x1F,0x1F,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFE,0xBE,
0x3E,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0xE0,0xF8,0xFC,0xFF,0x7F,0x1F,0x8F,0x87,0xC3,0xC1,0xE0,0xE0,0xE0,0xE0,
0xE0,0xE0,0xC0,0xC0,0xC0,0x80,0xFF,0xFF,0xFF,0xFF,0x01,0x03,0x07,0x0F,0xFF,0xFF,
0xFE,0xFC,0xF0,0x00,0x01,0x03,0x07,0x0F,0x3F,0x7F,0xFE,0xFC,0xF8,0xE0,0x80,0x00,
0xFC,0xFF,0xFF,0xFF,0xFF,0xF9,0xFE,0xFF,0xFF,0xDF,0xCF,0xC7,0xC3,0xC3,0xC3,0xC3,
0xC3,0xE3,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xF8,0xFF,0xFF,
0xFF,0xDF,0xC7,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC3,0xBF,0xFF,0xFF,0xFF,0xF8,
0x3F,0xFF,0xFF,0xFF,0xFD,0x83,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xE3,0xFB,0xFF,
0xFF,0xFF,0x1F,0x3F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xC7,0xC3,
0x87,0x87,0xC7,0xC7,0xC7,0xE7,0xFB,0xFF,0xFF,0x7F,0xDF,0xFF,0xFF,0xFF,0xFF,0x3F,
0x00,0x01,0x07,0x1F,0x3F,0xFF,0xFE,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x1F,0x3F,0xFF,
0xFF,0xFF,0xE0,0xC0,0xC0,0x80,0xFF,0xFF,0xFF,0xFF,0x01,0x03,0x03,0x07,0x07,0x07,
0x07,0x07,0x07,0x07,0x87,0xC3,0xE3,0xF1,0xFC,0xFE,0x7F,0x3F,0x1F,0x07,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x0F,0x1F,0x1F,0x3E,0x3E,0x7C,
0x7D,0x7B,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xF8,0xF8,0xF8,0xF8,0x7C,0x7C,
0x7C,0x3E,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
};
void picture()     //显示图标
{OLED_DrawBMP(40,1,48,48,tubiao);
}
//float temp;
//float humi;
//char str_temp[64];
//char str_humi[64];
float value;
unsigned char databuffer[64];
void get_sensor()
{AdcScanChannel();value = pow(10, ((1.395 - log10((50 / AdcReadCh0() - 20) / 10)) / 0.465));HAL_Delay(200);sprintf((char *)databuffer,"value:%2.0f",value);OLED_ShowString(32,3,databuffer);
//  call_sht11(&temp,&humi);
//  sprintf(str_temp,"%.0f",temp);    //温度
//  OLED_ShowString(50,2,(uint8_t*)str_temp);
//  sprintf(str_humi,"%.0f Rh",humi);   //湿度
//  OLED_ShowString(50,4,(uint8_t*)str_humi);
}
int fun,n,clickkey3,key3time;
void KeyDownHandler()
{scan_keys();    if(isKey3Pressed()){resetKey3();   //重置key3状态clickkey3++;   //统计双击次数if(clickkey3>=2&&key3time<50){fun++; //统计功能clickkey3=0;key3time=0;   //if(fun%3==1){n=1;OLED_Clear();}   if(fun%3==2){n=2;OLED_Clear();}if(fun%3==0){n=3;OLED_Clear();}   }else if(clickkey3>=2&&key3time>=50){key3time=0;   //两次单击超出时间则归零}}
}
int main( void )
{Init();while( 1 ){KeyDownHandler();if(clickkey3){++key3time;HAL_Delay(5);}else{key3time=0;}switch(n){case 1:  number();       break;case 2:  picture();      break;case 3:  get_sensor();   break;}}
}

三、LoRa模块烧写代码

编译无错误,直接用STlink下载,"模组串口连接拨码开关"无要求

四、实验效果

物联网竞赛LoRa模块双击实现某些功能-新大陆相关推荐

  1. Keil5添加.c文件与.h文件的方法-导入支持库-新大陆物联网竞赛-Lora模块NBIOT模块例程-添加导入文件

    一.概述 在某些情况下,我们使用现用的物联网开发例程,例如新大陆物联网的Lora与NBIOT的例程,我们对其例程内目前所有的库不满意,不足以实现开发需要的功能,我们需要在原有工程上添加我们自己的库,以 ...

  2. 物联网竞赛LoRa模块采集温湿度

    LoRa模块采集温湿度数据 采集SHT3温湿度光照集成模块的温湿度 代码实现 代码分析 最终实现效果 采集SHT3温湿度光照集成模块的温湿度 代码实现 int main( void ) {Init() ...

  3. 【物联网竞赛-LoRa 串口模块控制与显示】

    物联网竞赛-串口控制OLED显示与LED状态 一.实现效果 二.项目要求 三.代码实现与总结 1.通过define把串口指令封装起来 2.通过取模软件对汉字取模为16进制数据 3.判断串口指令使LED ...

  4. 物联网竞赛NB-IoT模块开发——计数器系统(Flash存储)

    核心代码 源码下载地址 物联网竞赛NB-IoT开发--计数器系统(Flash存储)-Flash文档类资源-CSDN下载

  5. 【物联网竞赛LoRa板实现呼吸灯和流水灯功能】

    LoRa板实现呼吸灯和流水灯功能 呼吸灯和流水灯的实现 一.呼吸灯与流水灯原理 1. 模拟人的呼吸效果,LED灯实现等由暗到亮,然后由亮到灭的类似呼吸效果,应为眼睛图像滞留时间在0.04s(1/24帧 ...

  6. 【物联网竞赛-LoRa驱动函数剖析】

    SX1276模块驱动LoRa消息的传输 一.入门LoRa无线扩频通信技术 二.涉及的重要函数 1.RadioInit( uint32_t freq, int8_t power, uint32_t tx ...

  7. 【物联网竞赛-LoRa计数器系统开发(Flash的存取)】

    计数器系统开发-Flash的存取 一.实现效果 二.项目要求 三.代码实现与解析 1.void Init_Show()实现初始化界面的显示 二.主函数int main( void ) 四.实现注意: ...

  8. 物联网竞赛单片机应用开发-一对一辅导项目

    物联网竞赛单片机应用开发-项目一对一辅导 一.ZigBee无线通信模块开发案例 1.IAR独立新建工程,基于CC2530寄存器开发 2.基于basicRf库的ZigBee无线功能开发 二.LoRa模块 ...

  9. 物联网竞赛单片机应用开发-项目汇总

    物联网竞赛单片机应用开发-项目汇总 一.ZigBee无线通信模块开发案例 1.IAR独立新建工程,基于CC2530寄存器开发 2.基于basicRf库的ZigBee无线功能开发 二.LoRa模块开发案 ...

最新文章

  1. 为什么不要用uuid做主键
  2. WINDOWS SERVER 2003从入门到精通之活动目录数据库的维护
  3. XGBoost的理解
  4. E 速度即转发(牛客挑战赛48)(树套树)
  5. excel重复上一步快捷键_13个excel快捷键,让你的1秒钟,抵得上同事的5分钟
  6. 华为Mate X即将于本月上市:5G实测下载速率超1Gbps
  7. Java EE体系概述
  8. VMware Linux 下 Nginx 安装配置 (一)
  9. GitHub 向别人的仓库贡献代码
  10. oracle12c如何完全卸载_如何卸载oracle12c
  11. SSH 只能用于远程 Linux 主机?那说明你见识太小了!
  12. Python爬取堆糖网图片的代码
  13. pagefile文件大小设置
  14. java chr()_chr码值对应列表大全
  15. win7 install solution for intel SKL and BSW platform
  16. SpringBoot对接微信公众号,持续更新
  17. 2020 Python中文社区热门文章 Top 10
  18. 学会 Arthas,让你 3 年经验掌握 5 年功力!
  19. C语言 详解如何编写闪烁显示字符串的函数
  20. 【grafana】grafana Panel plugin not found: grafana-piechart-panel

热门文章

  1. java web小游戏_用java web小游戏源代码。期末结课老师让做,急用,谢了
  2. POJ 1691 - Painting A Board + Python (DFS)
  3. python之torchlight使用_Unity3D加载火炬之光资源
  4. Python统计西游记妖怪出场次数(使用jieba分词)
  5. 测试地位的四象限分析
  6. 【HTML-5】小米耳机产品模块
  7. RSA加密为什么每次加密的结果不一样
  8. 我爱我的计算机专业演讲稿,2017年我爱我的专业演讲稿优秀范文
  9. m1虚拟机运行Linux,虚拟机Parallels发布新技术预览版,M1 Mac能运行Win 10了
  10. Kinect虚拟试衣