世界是你们的,也是我们的,但是归根结底是你们的。你们年青人朝气蓬勃,正在兴旺时候,好像早晨八、九点钟的太阳。希望寄托在你们身上。——毛泽东
人体与按键久按的代码参上,人体的灵敏度要靠自己调,传感器上有两个旋钮可以调节,百度有。代码复制烧写进去就行了,代码都注释好了,自己理解,最近没时间研究了,朋友说也不急。
/**
******************************************************************************
* 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_key.h"
Gpio_t rt1;//定义属于人体端口的一个变量
void Init() {
BoardInitMcu();
BoardInitPeriph();
keys_init();//按键初始化
setTimer2Callback(Time2Handler);
Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次
OLED_Init();
OLED_Clear();
GpioInit( &rt1, PA_2, PIN_INPUT, PIN_PUSH_PULL, PIN_NO_PULL, 0 );//初始化人体端口
}
/**
* Main application entry point.
*/
int main( void )
{
Init();
char sj1[11],sj2[11],sj3[11],rt2[11];//显示的数据
while( 1 )
{
int rt=GpioRead(&rt1);//获取人体传感器的状态,具体灵敏度传感器上有旋钮可以调
int k2=HAL_GPIO_ReadPin(KEY2_GPIO, KEY2_GPIO_PIN);//获取按键2状态,在按键al_key.c里有
int k3=HAL_GPIO_ReadPin(KEY3_GPIO, KEY3_GPIO_PIN);//获取按键3状态
int k4=HAL_GPIO_ReadPin(KEY4_GPIO, KEY4_GPIO_PIN);//获取按键4状态
sprintf(rt2,"%d",rt);
sprintf(sj1,"%d",k2);
sprintf(sj2,"%d",k3);
sprintf(sj3,"%d",k4);
OLED_ShowString(0,0,rt2);
OLED_ShowString(0,2,sj1);
OLED_ShowString(0,4,sj2);
OLED_ShowString(0,6,sj3);//将状态显示出来
}
}
下一期是lora-nb呼吸灯了。之后的可能要拖一拖了。