新手买了块开发办学习,用GPIO延时做PWM呼吸灯遇到问题了

2019-07-21 00:58发布

各位大大好,是这样的,本人初学STM32F4买了探索者的开发板学习,学到GPIO这一节后想试试使用延时函数实现输出PWM控制LED的呼吸灯效果,程序如下
uint32_t Tpwm=5000;
uint32_t p,q; int main(void)
{
while(1)
 {
   for(p=0; p<Tpwm; p++)
    {
    q=Tpwm-p;
    GPIO_ResetBits(GPIOF,GPIO_Pin_9);
    Delay(p);
    GPIO_SetBits(GPIOF,GPIO_Pin_9); 
    Delay(q);
    }
   
   for(p=Tpwm; p>0; p--)
    {
    q=Tpwm-p;
    GPIO_ResetBits(GPIOF,GPIO_Pin_9);
    Delay(p);
    GPIO_SetBits(GPIOF,GPIO_Pin_9); 
    Delay(q);
    }  }
}

以上程序在板子上跑没有问题,红 {MOD}LED像呼吸灯一样渐亮渐暗,效果满意。
然而
我把上面的Delay函数替换成delay_us之后,无论怎么调整时间长度,LED不是常亮就是常暗,完全没有呼吸的效果,不知道为什么会这样?
本想看看Delay函数与delay_us函数到底有什么区别,无奈Delay这个函数软件都找不到在哪里定义的。

请各位大大指教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。