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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版