admin 管理员组文章数量: 1086866
按键呼吸灯(循环)
1.定义按键中断设置pin脚13为按键,设置f为标志位,按键一旦按下,f为1,进入呼吸灯算法
if(GPIO_Pin&GPIO_PIN_13 )
{
if(f==0)
f=1;
else
f=0;
}
2.呼吸灯就是将一个灯点亮延时一定时间后在慢慢熄灭delay(20000-i)即为慢慢熄灭的过程,剩下的就是循环,
for(int J=0; J<8; J++)
{
if(f==1)
{
for(int i=0; i<=20000; i+=10)
{
HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_RESET );
delay (i);
HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_SET );
delay (20000-i);
}
for(int i=20000; i>=10; i-=10)
{
HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_RESET );
delay (i);
HAL_GPIO_WritePin (GPIOE ,LED[J] ,GPIO_PIN_SET );
delay (20000-i);
}
}
else
HAL_GPIO_WritePin(GPIOE ,LED[J] ,GPIO_PIN_SET);
}
3.定义一个数组,让呼吸灯可以在不同位置进行点灯。
uint16_t LED[]={LED1_Pin,LED2_Pin,LED3_Pin,LED4_Pin,LED5_Pin,LED6_Pin,LED7_Pin,LED8_Pin};
4.按键需要消抖
例
if(按键按下)
delay
if(按键再次按下)
按键呼吸灯(循环)0000-嵌入式文档类资源-CSDN文库
本文标签: 按键呼吸灯(循环)
版权声明:本文标题:按键呼吸灯(循环) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1687941012a160076.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论