完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在rt_hw_board_init函数里面对外设还有我的板子上的一些模块进行初始化,有些模块需要进行微秒延时或者毫秒延时,但是我配置了定时器以后发现延时函数进不了中断,后来发现是系统启动前关闭了总中断导致的,如下: int rtthread_startup(void)
|
|
相关推荐
3个回答
|
|
你查询的定时器,st 里因为有专门的 systick ,也是一个简化的定时器。rt_hw_thread_udelay 这个函数就是不停的比较 systick 值。
我修改的 HAL_uDelay 也借用了 rt_hw_thread_udelay 。 两种延时,一种是纯延时,啥也不干;还有一种是等待某种状态,超时返回错误。我提到的是第二种。 你好像实现的是第一种,第一种情况使用 rt_hw_thread_udelay 就好了。你的平台环境没有这个函数实现? |
|
|
|
我明白了,原理确实是一样的,只不过你那边是设置了一个10us的延时时基,然后不断地比较,其实是一样的方法,感谢。
我用的雅特力的AT32F407单片机和他们的标准库,移植的是Nano版本,所以没有你文档里面的那些函数,刚刚看得有点懵。 简而言之该问题的解决思路就是把中断方式的延时函数改成查询方式实现,就能放心使用了。 |
|
|
|
对,不需要纠结开中断了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
518 浏览 0 评论
1785 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2169 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2673 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
29048 浏览 11 评论
72135 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-9 05:35 , Processed in 0.688791 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号