[STM32] 滴答定时器

[复制链接]
1915|2
 楼主| wanghlady 发表于 2014-10-22 13:09 | 显示全部楼层 |阅读模式
void delay_ms(u16 nms)
{                                     
        u32 temp;       
  SysTick->CTRL&=0xfffffffb;//bit2Çå¿Õ,Ñ¡ÔñÍⲿʱÖÓ  HCLK/8       
        SysTick->LOAD=(u32)nms*fac_ms;//ʱ¼ä¼ÓÔØ(SysTick->LOADΪ24bit)
        SysTick->VAL =0x00;           //Çå¿Õ¼ÆÊýÆ÷
        SysTick->CTRL=0x01 ;          //¿ªÊ¼µ¹Êý  
        do
        {
                temp=SysTick->CTRL;
        }
        while(temp&0x01&&!(temp&(1<<16)));//µÈ´ýʱ¼äµ½´ï   
        SysTick->CTRL=0x00;       //¹Ø±Õ¼ÆÊýÆ÷
        SysTick->VAL =0X00;       //Çå¿Õ¼ÆÊýÆ÷                      
}
这个程序一直停留在DO WHILE 处,跳不出来,temp&(1<<16)好像一直没有变化,定时器第16位没有被置一,是什么的原因
ayb_ice 发表于 2014-10-23 14:30 | 显示全部楼层
时钟源不对吧
再说temp&0x01也不对,前面设置为0,后面怎么可能为1呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
henglin 发表于 2015-11-15 13:26 | 显示全部楼层
以后 延时 劲量不要用这样的老土方式  可以充分利用定时器去做   不要让MCU 在死循环里  浪费时间  别的事情也没有办法处理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:温婉有力、从容笃定

10

主题

94

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部