封装延时函数,可用以下两种方法
第一种:
void Delay(unsigned long num)
{
while(num-- )
{
}
}
第二种:
void Delay(unsigned long num)
{
uint16_t a=0,b=0;
for (a=0;a<num;a++)
for(b=0;b<10;b++);
}
main函数
for(i = 0; i < 2000; i++)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_RESET);
Delay(i);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
Delay(2000 - i);
}
for(i = 0; i < 2000; i++)
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
Delay(i);
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_RESET);
Delay(2000 - i);
}
亮的时间越来越长,灭的时间越来越短,视觉效果就为慢慢变亮;
相反就是慢慢变暗,实现呼吸灯的效果。