OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9199|回复: 16

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

[复制链接]

14

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2017-6-12
在线时间
85 小时
发表于 2017-9-19 16:02:26 | 显示全部楼层 |阅读模式
1金钱
如题,我在程序开始时,先进行delay_init初始化,然后在代码中调用delay_ms()函数,一直仿真发现就一直卡住在此函数中出不来,
        do
        {
                temp=SysTick->CTRL;
        }while((temp&0x01)&&!(temp&(1<<16)));                //等待时间到达   


请问这样如何解决啊?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-9-19 16:18:50 | 显示全部楼层
首先delay_ms()肯定没有任何问题,检查自己的配置,systick的配置,系统时钟的配置
回复

使用道具 举报

14

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2017-6-12
在线时间
85 小时
 楼主| 发表于 2017-9-19 16:20:44 | 显示全部楼层
zuozhongkai 发表于 2017-9-19 16:18
首先delay_ms()肯定没有任何问题,检查自己的配置,systick的配置,系统时钟的配置

都配置了,系统时钟使用的是外部8MHz,没看到什么问题啊
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-9-19 17:34:29 | 显示全部楼层
阳光2260 发表于 2017-9-19 16:20
都配置了,系统时钟使用的是外部8MHz,没看到什么问题啊

delay_init(8)?
回复

使用道具 举报

14

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2017-6-12
在线时间
85 小时
 楼主| 发表于 2017-9-19 17:42:22 | 显示全部楼层
使用的是delay_init()函数。
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);        //选择外部时钟  HCLK/8
        fac_us=SystemCoreClock/8000000;                                //为系统时钟的1/8
回复

使用道具 举报

14

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2017-6-12
在线时间
85 小时
 楼主| 发表于 2017-9-19 17:43:07 | 显示全部楼层

使用的是delay_init函数:
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);        //选择外部时钟  HCLK/8
        fac_us=SystemCoreClock/8000000;                                //为系统时钟的1/8
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-9-20 00:24:08 | 显示全部楼层
仿真,看你的寄存器是否有变化
回复

使用道具 举报

14

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2017-6-12
在线时间
85 小时
 楼主| 发表于 2017-9-20 16:39:22 | 显示全部楼层
正点原子 发表于 2017-9-20 00:24
仿真,看你的寄存器是否有变化

你好,仿真看了,寄存器R2和R15有变化,别的没变化。而且temp=SysTick->CTRL;语句的temp值一直为0x00000001,没有变化。
回复

使用道具 举报

13

主题

156

帖子

0

精华

高级会员

Rank: 4

积分
883
金钱
883
注册时间
2017-8-7
在线时间
200 小时
发表于 2017-9-20 17:31:49 | 显示全部楼层
帮顶!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-9-21 01:09:47 | 显示全部楼层

如果temp一直不变,八成是你的初始化有问题。
你直接下载我们例程,行不行?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

14

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
411
金钱
411
注册时间
2017-6-12
在线时间
85 小时
 楼主| 发表于 2017-9-21 08:53:24 | 显示全部楼层
正点原子 发表于 2017-9-21 01:09
如果temp一直不变,八成是你的初始化有问题。
你直接下载我们例程,行不行?

你好,我就是直接使用你们的例程的。我再看一下问题吧。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2017-9-21 12:11:01 | 显示全部楼层
查找其它原因吧,这个函数没问题
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2019-6-3
在线时间
14 小时
发表于 2020-5-27 22:55:44 | 显示全部楼层
您好,请问你问题解决了吗
回复

使用道具 举报

5

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2020-2-24
在线时间
21 小时
发表于 2020-7-19 15:35:00 | 显示全部楼层
同问,我仿真也一直卡在这
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-7-20 01:51:31 | 显示全部楼层
先得初始化延时,才能正常使用delay函数
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2020-10-11
在线时间
8 小时
发表于 2020-10-11 22:50:16 | 显示全部楼层
+1,我也卡在这里了,有结果了踢我一下
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2021-2-26
在线时间
1 小时
发表于 2021-2-26 18:30:59 | 显示全部楼层
https://blog.csdn.net/ima_xu/article/details/103595720
建议看看这个帖子的教程,感觉受益匪浅
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 18:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表