你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030K6T6时钟配置和延时不正确,请求帮助

[复制链接]
CC4 提问时间:2019-1-8 10:53 /
阅读主题, 点击返回1楼
收藏 评论20 发布时间:2019-1-8 10:53
20个回答
CC4 回答时间:2019-1-9 09:34:45
本帖最后由 select326 于 2019-1-9 09:40 编辑
安 发表于 2019-1-9 08:12
就按1个机器周期算就行。先算机器周期时间,延时需要多少个机器周期。

我查了下资料,说是一个nop 的时间就是: 1/系统时钟
照这样计算,STM32F030K6 配置时钟48M,一个nop 就是  1/48000000
1秒=1000MS = 1000000 us
想要延时1US,就需要执行 48次 nop
这样计算对吗?

但是,nop 本身也是函数调用,会不会占用系统周期?或者说,这个在编译时就解决了,?
废鱼 回答时间:2019-1-9 09:56:43
在比较大的计时中可以忽略,但是越小越需要考虑代码所执行的周期。比如FOR循环执行需要多少个机器周期。
qiangtech 回答时间:2019-1-9 10:42:09
FOR和NOP延时用在要求不高的地方还可以,如果要求高一点还是用SYSTICK和TIMER来延时比较好。还有就是下次换个频率的芯片,FOR和NOP又要重新调试。

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

CC4 回答时间:2019-1-9 18:17:22
这个迁时肯定是要精确的,不是大约。这个NOP 方案只怕还是不行。还是得考虑下使用HAL库 如何做US延时
mtg 回答时间:2019-1-9 21:23:34
我最近也遇到了这个类似的问题,不过我是使用的LL库,使用CubeMx生成的,使用的额内部晶振,主要造成这个的原因是生成的代码里面有一个内部晶振校准的代码,屏蔽掉就好了,我是用的stm32L051的代码。你可以看看是不是有可能是相同的问题。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

CC4 回答时间:2019-1-10 09:55:47
芯领神会 发表于 2019-1-9 21:23
我最近也遇到了这个类似的问题,不过我是使用的LL库,使用CubeMx生成的,使用的额内部晶振,主要造成这个的 ...

我也想用LL库,但是,使用LL库不会配置时钟,造成运行各种问题。。
使用HAL库,不会做US延时,也会有各种问题。。。。
你的代码来一个测试下呀
12
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版