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

收获

函数传参,要注意传参的类型,还有注意大小。之前知道,但是实际出错了,才影响深刻

posted @ 2023-07-07 10:36  moveddowm  阅读(75)  评论(0编辑  收藏  举报