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

【经验分享】STM32中实用的精确延时方法  

[复制链接]
天天晓宇 发布时间:2015-1-7 10:11
阅读主题, 点击返回1楼
收藏 18 评论109 发布时间:2015-1-7 10:11
109个回答
大秦正声 回答时间:2015-1-19 10:41:49
天天晓宇 发表于 2015-1-8 12:493 U1 ]- e2 }: ?9 i  J
少了中断的运行时间,精度应该是比中断更好的

$ ]0 B9 p* U9 O) b% C/ B说的对!
默默前行 回答时间:2015-1-19 11:02:22
赞一个!
Dylan疾风闪电 回答时间:2015-1-19 12:59:43
貌似72MHz时1us的计数值是9.
8 _; l3 P+ s+ j& f6 G! l7 f//(nus*HCLK/8)&0x00FFFFFF; . d! ~$ i6 ]. ?. W6 S
SysTick->LOAD = ((nus*HCLK)&0x07FFFFF8)>>3; 无标题.jpg
1 {& `) ~* ?/ B; ~- [$ d8 [. q
zhous 回答时间:2015-1-19 13:50:00
不错不错
caizhiwei 回答时间:2015-1-19 16:53:07
建议用中断,比如你延时1S,在延时期间cpu不干别的事一直查询等时间到!效率非常低,比如你同时驱动数码管就会闪烁!% M' p' p* y9 p& P
所以建议上操作系统吧,别纠结延时了。。。
moyanming2013 回答时间:2015-1-19 17:41:36
过来支持的
天天晓宇 回答时间:2015-1-20 08:42:57
moyanming2013 发表于 2015-1-19 17:411 {$ j8 p; g5 r4 W1 \) z4 @+ V
过来支持的

5 w- R/ x9 r4 p4 z( x. R3 _9 Q谢谢支持
天天晓宇 回答时间:2015-1-20 08:46:36
caizhiwei 发表于 2015-1-19 16:53
- P3 a  {4 B! D4 _建议用中断,比如你延时1S,在延时期间cpu不干别的事一直查询等时间到!效率非常低,比如你同时驱动数码管就 ...
/ _  B4 e8 C& I! s( {9 d& c, n
不是所有的东西都需要上操作系统,你说的效率低的确是,但是一般的普通延时,几us的,ms的用这个比较方便。很多时候比如复位某个芯片,然后等待一段时间再去操作,都是需要等待的,系统初始化的时候也是。
天天晓宇 回答时间:2015-1-20 08:47:04
zhous 发表于 2015-1-19 13:50# s( X  @2 Y/ ~' x# x% y% u
不错不错

% j9 R$ E% M: v( f# h( z谢谢支持
caizhiwei 回答时间:2015-1-20 08:48:37
天天晓宇 发表于 2015-1-20 08:46- u3 R4 W7 _& v9 i8 v% r6 k
不是所有的东西都需要上操作系统,你说的效率低的确是,但是一般的普通延时,几us的,ms的用这个比较方便 ...

4 Z% x8 P  `; Q+ XuS级的用延时,ms级的用中断,
天天晓宇 回答时间:2015-1-20 08:49:20
Dylan疾风闪电 发表于 2015-1-19 12:59
: s9 x  Q1 [4 D4 z6 }* b: Y貌似72MHz时1us的计数值是9.
& B7 d% _# z6 r- R! J//(nus*HCLK/8)&0x00FFFFFF; + _' D2 \+ k& X! A5 M5 u$ J2 s
SysTick->LOAD = ((nus*HCLK)&0x07FFFFF8)>>3;
. v, L% l6 \3 _* p$ {1 {
亲,你没看到他说systick的时钟是9M吗?我们设置的时钟是72M,当然是72
天天晓宇 回答时间:2015-1-20 08:49:40
十二翼天使 发表于 2015-1-9 08:08" s/ ?+ r3 G& w! C" t& Y/ u7 ?
这种精确延时方法我在书上看到过,但有好久没看了,太生疏了,这段时间忙着功课和英语六级真是麻烦。不过还 ...

/ e7 |0 @! x% @# |$ r谢谢支持
caizhiwei 回答时间:2015-1-20 09:44:45
楼主程序虽简单,但是有两行错误!
+ t) `# \  ]8 J  E4 o& l1.systick时钟为9Mhz,所以第一句应该是9*nTime  X: q8 w/ X7 p' h
2,。关闭计数器应该是:
6 y' E, O' M* h7 p0 I# |) ASysTick->CTRL=0x00;       //关闭计数器; M, }/ @! W* o& p7 |

" e" d1 A6 G8 |谁对谁错?不能误人子弟!请楼主出面对质!!!
天天晓宇 回答时间:2015-1-20 09:58:38
caizhiwei 发表于 2015-1-20 09:44
- S' W; ^/ X. @, X/ K楼主程序虽简单,但是有两行错误!/ e9 t* ]0 m$ Y2 r
1.systick时钟为9Mhz,所以第一句应该是9*nTime
% i- K8 W/ b$ Q- i: ~( t0 Q* l2,。关闭计数器应该是: ...

6 }. I$ T& F: }5 S2 Z  w' b亲,对质可以啊,你在群里ID叫什么,我们去群里对质
Dylan疾风闪电 回答时间:2015-1-20 18:15:27
天天晓宇 发表于 2015-1-20 09:58* i. E5 Z. p- J/ J9 n- v
亲,对质可以啊,你在群里ID叫什么,我们去群里对质

) |6 z  q: q8 i6 p很有必要看以下RCC时钟树。了解下滴答器的时钟是怎么来的。
( B6 v- h* T- q3 @本不想说的,现在提一下。楼主可以通过至少以下2种方式验证:1.示波器看滴答器控制GPIO电平翻转(直接又有效)。2.问ST的FAE。/ u5 z' {6 Y7 Q, A
无标题.jpg ! p2 ^0 L. R( X% l
8 x, }: s: N8 d- f1 p

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版