这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 求教ms延时子程序卡住的问题

共6条 1/1 1 跳转至

求教ms延时子程序卡住的问题

助工
2012-04-22 16:08:22     打赏
void delay_ms(u16 nms)
{        
 u32 temp;    
 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;       //清空计数器       
}  
如上程序,来自网络上的高人
但是我用ulink调试,一直卡在
 do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
这里,
我设置的boot是1.1,求指点



关键词: 求教     延时     子程序     住的     问题    

专家
2012-04-22 16:16:47     打赏
2楼
while(temp&0x01&&!(temp&(1<<16))

院士
2012-04-22 23:48:16     打赏
3楼
boot0 = 0
boot1 任意。

楼主的代码没有错误。
贴出来的代码经过测试没有问题。

建议楼主检查一下其初始化条件是否正常。

高工
2012-04-23 07:51:57     打赏
4楼
你使用systick进行延迟,其定时间隔不能太短,设长点,试试~!

助工
2012-04-23 20:20:48     打赏
5楼

还未找到办法,boot0 =0 可以进主程序,但是这个程序会有问题,卡住,boot=1 进不了主程序,但是设置pc 在主程序开跑,这个延时程序可以过
纳闷中,求解答


助工
2012-04-24 13:53:58     打赏
6楼
求求助..................

共6条 1/1 1 跳转至

回复

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