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

【经验分享】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:49
) r3 ~% z( p' |6 N1 k少了中断的运行时间,精度应该是比中断更好的

& m% ^3 A2 p. T$ G6 B1 R说的对!
默默前行 回答时间:2015-1-19 11:02:22
赞一个!
Dylan疾风闪电 回答时间:2015-1-19 12:59:43
貌似72MHz时1us的计数值是9.$ h" G1 Q/ H0 w" r; [. y
//(nus*HCLK/8)&0x00FFFFFF; + p/ u- r# f, _! y+ R) b" H+ y
SysTick->LOAD = ((nus*HCLK)&0x07FFFFF8)>>3; 无标题.jpg 2 W! W0 q4 K" v- {1 W
zhous 回答时间:2015-1-19 13:50:00
不错不错
caizhiwei 回答时间:2015-1-19 16:53:07
建议用中断,比如你延时1S,在延时期间cpu不干别的事一直查询等时间到!效率非常低,比如你同时驱动数码管就会闪烁!. e- A4 ?: T3 E4 L
所以建议上操作系统吧,别纠结延时了。。。
moyanming2013 回答时间:2015-1-19 17:41:36
过来支持的
天天晓宇 回答时间:2015-1-20 08:42:57
moyanming2013 发表于 2015-1-19 17:41
1 x( Q' d$ R  `; t+ l# k过来支持的

* @) A6 i+ \2 A' r4 I谢谢支持
天天晓宇 回答时间:2015-1-20 08:46:36
caizhiwei 发表于 2015-1-19 16:53
( @/ N" D! F, U建议用中断,比如你延时1S,在延时期间cpu不干别的事一直查询等时间到!效率非常低,比如你同时驱动数码管就 ...

% Q/ p+ N/ B2 R" b$ Z* X不是所有的东西都需要上操作系统,你说的效率低的确是,但是一般的普通延时,几us的,ms的用这个比较方便。很多时候比如复位某个芯片,然后等待一段时间再去操作,都是需要等待的,系统初始化的时候也是。
天天晓宇 回答时间:2015-1-20 08:47:04
zhous 发表于 2015-1-19 13:50( j8 ~/ ]4 d8 r' K7 `' N1 A4 I" v
不错不错

  s' y; K% j4 u, D- w3 e- Q谢谢支持
caizhiwei 回答时间:2015-1-20 08:48:37
天天晓宇 发表于 2015-1-20 08:46* i: |: ?) s2 f5 i) D; A5 ]1 O: O
不是所有的东西都需要上操作系统,你说的效率低的确是,但是一般的普通延时,几us的,ms的用这个比较方便 ...

- h+ c+ x+ M, u, h! O, P. y7 vuS级的用延时,ms级的用中断,
天天晓宇 回答时间:2015-1-20 08:49:20
Dylan疾风闪电 发表于 2015-1-19 12:591 _, |- m  }! s% p6 Q
貌似72MHz时1us的计数值是9.
0 l5 f% m; k+ \' p9 u. h, k//(nus*HCLK/8)&0x00FFFFFF;
& s2 ], x6 _  r4 u; fSysTick->LOAD = ((nus*HCLK)&0x07FFFFF8)>>3;
/ E# V/ j+ ~+ ]" V5 _9 F; ^, [
亲,你没看到他说systick的时钟是9M吗?我们设置的时钟是72M,当然是72
天天晓宇 回答时间:2015-1-20 08:49:40
十二翼天使 发表于 2015-1-9 08:08) w  S, T) ?) ?# a6 R
这种精确延时方法我在书上看到过,但有好久没看了,太生疏了,这段时间忙着功课和英语六级真是麻烦。不过还 ...

, K( s1 q8 |, [6 v) U% d2 J+ }4 i1 B谢谢支持
caizhiwei 回答时间:2015-1-20 09:44:45
楼主程序虽简单,但是有两行错误!
; D1 P3 R3 p0 R  K5 l% b4 T1.systick时钟为9Mhz,所以第一句应该是9*nTime- H5 ~! Q3 R( m$ n& T3 @
2,。关闭计数器应该是:
6 X1 Z5 v) Z- B) H, E9 hSysTick->CTRL=0x00;       //关闭计数器' u$ M# E8 l8 }% o

2 j8 _2 D# x0 p* R/ b谁对谁错?不能误人子弟!请楼主出面对质!!!
天天晓宇 回答时间:2015-1-20 09:58:38
caizhiwei 发表于 2015-1-20 09:44
1 ^4 m: v( m* ?, ~$ u; }楼主程序虽简单,但是有两行错误!4 o. s' v6 y9 x, m1 R& @" l6 M
1.systick时钟为9Mhz,所以第一句应该是9*nTime
* X( `, l+ @/ U' o6 n; ^3 D/ K+ d2,。关闭计数器应该是: ...

/ ?) Z1 R4 ]/ \) C亲,对质可以啊,你在群里ID叫什么,我们去群里对质
Dylan疾风闪电 回答时间:2015-1-20 18:15:27
天天晓宇 发表于 2015-1-20 09:58' N2 h# {9 _: n) \8 F- |6 |
亲,对质可以啊,你在群里ID叫什么,我们去群里对质
9 m( U! b! t8 S& j  G
很有必要看以下RCC时钟树。了解下滴答器的时钟是怎么来的。
# j9 q$ m8 ?1 Z4 S' J本不想说的,现在提一下。楼主可以通过至少以下2种方式验证:1.示波器看滴答器控制GPIO电平翻转(直接又有效)。2.问ST的FAE。
! b7 b! M" x- F2 Y. n# l5 a9 W. E. j 无标题.jpg
) ^# q$ O3 E3 U* R% p) p  K- ?
" T" L8 N1 z0 @% p( u

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版