打印

自己用的Systick延时函数

[复制链接]
218|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小的人呀|  楼主 | 2018-7-30 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[mw_shl_code=c,true]void delay_ms(u16 nms)
{                                     
        u32 temp;
        if( SysTick->CTRL==0x00 )
        {
                SysTick->LOAD=(u32)nms*fac_ms;
                SysTick->VAL =0x00;
                SysTick->CTRL=0x01;
                do
                {
                        temp=SysTick->CTRL;
                }
                while((temp&0x01)&&!(temp&(1<<16)));   
                SysTick->CTRL=0x00;
                SysTick->VAL =0X00
        }
        else
        {
                temp = SysTick->VAL;
                SysTick->CTRL=0x00;
                SysTick->VAL =0X00;
                delay_ms(nms);
                if(nms*fac_ms<temp)
                {
                        SysTick->LOAD = temp - nms*fac_ms;
                        SysTick->CTRL = 0x01;
                }
        }
}[/mw_shl_code]

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

399

主题

399

帖子

0

粉丝