LED灯呼吸实现过程突然闪烁
出现现象:
当设置呼吸灯的效果时,发现灯慢慢的亮突然闪烁一下。
代码如下
void delay(uint8_t t)
{
int a;
for(a=0;a<t;a++){}
}
for(i=0;i<2000;i++)
{
HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_SET);
delay(i);
HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_RESET);
delay(2000-i);
}
for(i=0;i<2000;i++)
{
HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_RESET);
delay(i);
HAL_GPIO_WritePin(GPIOB,LED2_Pin,GPIO_PIN_SET);
delay(2000-i);
}
解决
void delay(uint8_t t)
{
int a;
for(a=0;a<t;a++){}
}
这其中参数uint8 t (最大值为255),这与后面写的参数1000,所有会出现异常现象
将 uint8 改为uint 16
收获
函数传参,要注意传参的类型,还有注意大小。之前知道,但是实际出错了,才影响深刻