【开发】新大陆LoRa模块板内容显示

312 阅读1分钟

功能

  • 点亮OLED屏
  • 显示内容
  • 可使用按键控制内容

环境

  • keli uVision5
  • flash_loader_demo_v2.8.0

代码

/**
  ******************************************************************************
  * 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 "led_light.h"

uint16_t tenMSecClick=0;																		// 10毫秒计时器

/**********************************************************************************************
*函数:void Init( void )
*功能:平台初始化
*输入:无
*输出:无
*特殊说明:无
**********************************************************************************************/
void Init() {
    // 开发板平台初始化
    BoardInitMcu();
    BoardInitPeriph();
    OLED_Init();//显示屏初始化
    keys_init();//按键初始化
    setTimer2Callback(Time2Handler);
    Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次
}

/**********************************************************************************************
*函数:void KeyDownHandler( void )
*功能:按钮事件监听
*输入:无
*输出:无
*特殊说明:无
**********************************************************************************************/
int now = 0void KeyDownHandler(void) {
	scan_keys();
	if(isKey2Pressed()){
		resetKey2();
		switch(now){
			case 1:now=0;break;
			case 0:now=0;break;
		}
	}
	if(isKey3Pressed()){
		resetKey3();
		switch(now){
			case 0:now=1;break;
			case 1:now=1;break;
		}
	}
}

/**********************************************************************************************
*函数:void handlerPre10Ms( void )
*功能:10毫秒循环
*输入:无
*输出:无
*特殊说明:循环处理总时长300ms
**********************************************************************************************/
void handlerPre10Ms(void) {
    for (int delay = 0; delay < 30; delay++) {
        HAL_Delay(10);
    }
}



/**
 * Main application entry point.
 */
int main( void )
{
    Init();
	OLED_ShowString(0,1,"NO.1");
	OLED_ShowString(0,3,"NO.2");
    while(1){
		KeyDownHandler();
     	if(now==0){
			OLED_ShowString(60,1,"<");
			OLED_ShowString(60,3,"  ");
		}
		else if(now==1){
			OLED_ShowString(60,1,"  ");
			OLED_ShowString(60,3,"<");
		}
    }
}