原子哥的 delay_ms()函数是否有问题啊?一直卡住,出不来。

2019-08-14 00:04发布

如题,我在程序开始时,先进行delay_init初始化,然后在代码中调用delay_ms()函数,一直仿真发现就一直卡住在此函数中出不来,
        do
        {
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));                //等待时间到达   


请问这样如何解决啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
taizonglai
1楼-- · 2019-08-14 03:02
首先delay_ms()肯定没有任何问题,检查自己的配置,systick的配置,系统时钟的配置
阳光2260
2楼-- · 2019-08-14 03:53
zuozhongkai 发表于 2017-9-19 16:18
首先delay_ms()肯定没有任何问题,检查自己的配置,systick的配置,系统时钟的配置

都配置了,系统时钟使用的是外部8MHz,没看到什么问题啊
BMN李
3楼-- · 2019-08-14 08:02
阳光2260 发表于 2017-9-19 16:20
都配置了,系统时钟使用的是外部8MHz,没看到什么问题啊

delay_init(8)?
阳光2260
4楼-- · 2019-08-14 08:22
 精彩回答 2  元偷偷看……
阳光2260
5楼-- · 2019-08-14 13:43
BMN李 发表于 2017-9-19 17:34
delay_init(8)?

使用的是delay_init函数:
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);        //选择外部时钟  HCLK/8
        fac_us=SystemCoreClock/8000000;                                //为系统时钟的1/8
正点原子
6楼-- · 2019-08-14 15:01
仿真,看你的寄存器是否有变化

一周热门 更多>