这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » STM32定时器+两个函数6行代码实现精确的延时功能!

共2条 1/1 1 跳转至

STM32定时器+两个函数6行代码实现精确的延时功能!

工程师
2021-03-12 21:06:04     打赏

直接操作寄存器,两个函数6行代码实现精确的延时功能,源码如下:


  1. 初始化定时器,前提是RCC时钟树配好。
    void TIM3_Config( void )
    {
            RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;

            TIM3->PSC = 36000 - 1;                                                //72M/36000 = 2000Hz(500uS)
            TIM3->ARR = 0xFFFF;                                                //maximum
            TIM3->CR1 |= TIM_CR1_CEN;                                        //start the timer
    }

    2.延时函数
    void Delay_ms(uint32_t UTime)
    {
            TIM3->CNT = 0;

            while (TIM3->CNT <= (UTime << 1));
    }

    3.使用它
    int main(void)
    {
                TIM3_Config();
            while(1)
            {
                    LED_BLU_INV;
                    Delay_ms(200);
            }
    }

    这个延时也是死等,只能被中断打断,合不合适看应用场合吧!






关键词: STM32     定时器     延时    

工程师
2021-03-12 22:08:10     打赏
2楼

值得借鉴,感谢分享!


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]