STM32入门一百步第二十八步
LED呼吸灯是在闪烁的基础上,调节LED点亮的时间和熄灭的时间,进而时LED呈现出逐渐变亮或者变暗的过程。
我们知道点亮或者熄灭LED就是给端口高低电平即1或0,通过调节占空比,改变1和0 的占用时间即可达到此效果。
主程序如下
int main (void)
{
u8 MENU;
u16 t,i;
//初始化程序
RCC_Configuration(); //时钟设置
LED_Init();
//设置变量的初始值
MENU = 0;
t = 1;
//主循环
while(1)
{
//菜单0
if(MENU == 0)
{ //变亮循环
for(i = 0; i < 10; i++)
{
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
delay_us(t); //延时
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
delay_us(501-t); //延时
}
t++;
if(t==500){
MENU = 1;
}
}
//菜单1
if(MENU == 1)
{ //变暗循环
for(i = 0; i < 10; i++)
{
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
delay_us(t); //延时
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
delay_us(501-t); //延时
}
t--;
if(t==1)
{
MENU = 0;
}
}
}
}