知识的问题是一个科学的问题,来不得半点的虚伪和骄傲,决定地需要的倒是其反面的诚实和谦逊的态度。——毛泽东
实现按键呼吸灯的暂停与继续。代码参上。
/**
******************************************************************************
* 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"//呼吸灯必要头文件
/**********************************************************************************************
*函数: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);
}
}
/**
* Main application entry point.
*/
int main( void )
{
Init();
setBreathLedArg(64,128);//设置呼吸比列
switchLed1Breath();//开启LED1呼吸灯
switchLed2Breath();//开启LED2呼吸灯
int a=0;//定义一个状态
while( 1 )
{
if(a==0){
breathLed();//执行函数 ++--
}else{
pwm();//停止对呼吸PWM ++-- 只执行指定范围的数值
}
if(isKey2Pressed()){//按键2
resetKey2();
if(a==0){
a=1;
}else{//切换状态
a=0;
}
}
}
}