打印

STM32时钟问题请教

[复制链接]
1002|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianli1980|  楼主 | 2014-4-14 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题现象;在一个工程运行完全正常,但是我把程序拷贝到另一个工程运行不正常,我发现了一个不同点:
延时函数:
void Delaytime(uint32_t nTime)
{
  TimeDelay = nTime;
  while(TimeDelay != 0);

}
系统时钟中断:
void SysTick_Handler(void)
{
   if(TimeDelay>0)
   {
     TimeDelay--;
   }
   else
   {
     TimeDelay=0;
   }
}
主程序:
void main()
{
    Delaytime(100);
    ...........
    ...........
}

运行不正常的工程,在Delaytime(100);就没有往下执行了,我检测过很多次,程序一模一样,但是在系统时钟中断里面出了问题,我不知道为什么,系统时钟的配置也是一样的,库也是一样的,我找不到原因,什么情况啊?求助各位朋友。
沙发
沧海一笑| | 2014-4-14 17:22 | 只看该作者
排除时钟配置,库,程序,硬件问题,那只剩下你的新建的工程文件了,例如是不是你新的工程里面的全局,参数,定义哪里冲突了,不懂STM32,友情帮你顶顶吧,让高手多关注下..

使用特权

评论回复
板凳
mmuuss586| | 2014-4-14 17:41 | 只看该作者

跟踪下程序,把时钟显示出来。

使用特权

评论回复
地板
拿起书本| | 2014-4-15 09:22 | 只看该作者
编译器优化掉了,声明TimeDelay 前面加 volatile

使用特权

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

本版积分规则

482

主题

2214

帖子

11

粉丝