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

【经验分享】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
) g+ ?# d5 c, r, L# _少了中断的运行时间,精度应该是比中断更好的

  w1 H% t% G# L1 V6 q3 R说的对!
默默前行 回答时间:2015-1-19 11:02:22
赞一个!
Dylan疾风闪电 回答时间:2015-1-19 12:59:43
貌似72MHz时1us的计数值是9.% Z" G7 O+ H. j& O# I# j) U
//(nus*HCLK/8)&0x00FFFFFF; 5 o! U( V. V/ A  ^6 w
SysTick->LOAD = ((nus*HCLK)&0x07FFFFF8)>>3; 无标题.jpg 1 l* ~' p4 T+ D' T; d
zhous 回答时间:2015-1-19 13:50:00
不错不错
caizhiwei 回答时间:2015-1-19 16:53:07
建议用中断,比如你延时1S,在延时期间cpu不干别的事一直查询等时间到!效率非常低,比如你同时驱动数码管就会闪烁!
9 d; K- ?! C  ?' k' A所以建议上操作系统吧,别纠结延时了。。。
moyanming2013 回答时间:2015-1-19 17:41:36
过来支持的
天天晓宇 回答时间:2015-1-20 08:42:57
moyanming2013 发表于 2015-1-19 17:41
0 g, v+ t, M, S/ f. E过来支持的
7 M  ^5 @' ~$ S4 I
谢谢支持
天天晓宇 回答时间:2015-1-20 08:46:36
caizhiwei 发表于 2015-1-19 16:53
2 b9 \0 A0 ^3 k  U8 r建议用中断,比如你延时1S,在延时期间cpu不干别的事一直查询等时间到!效率非常低,比如你同时驱动数码管就 ...
: y) z. P+ g( o) P; f
不是所有的东西都需要上操作系统,你说的效率低的确是,但是一般的普通延时,几us的,ms的用这个比较方便。很多时候比如复位某个芯片,然后等待一段时间再去操作,都是需要等待的,系统初始化的时候也是。
天天晓宇 回答时间:2015-1-20 08:47:04
zhous 发表于 2015-1-19 13:50; }7 u( m& n8 k7 b, w6 I, ]7 K
不错不错
/ v# o# l" V3 b& k% [- ^. I
谢谢支持
caizhiwei 回答时间:2015-1-20 08:48:37
天天晓宇 发表于 2015-1-20 08:46
8 E9 }% B5 [  q6 _* x$ H7 E5 I# \; O不是所有的东西都需要上操作系统,你说的效率低的确是,但是一般的普通延时,几us的,ms的用这个比较方便 ...

. t5 s' U3 B5 X. u" C/ S2 auS级的用延时,ms级的用中断,
天天晓宇 回答时间:2015-1-20 08:49:20
Dylan疾风闪电 发表于 2015-1-19 12:59" B2 F5 \* a4 ?6 m+ R4 l
貌似72MHz时1us的计数值是9./ n5 J. V* Y0 b5 ]0 Q
//(nus*HCLK/8)&0x00FFFFFF;
2 d' u( N( Q4 O0 V% G. h# g! v% CSysTick->LOAD = ((nus*HCLK)&0x07FFFFF8)>>3;

' R2 L$ t$ ?: D2 \9 S7 p' S亲,你没看到他说systick的时钟是9M吗?我们设置的时钟是72M,当然是72
天天晓宇 回答时间:2015-1-20 08:49:40
十二翼天使 发表于 2015-1-9 08:08
- ~, o: i. ?/ k4 v; [这种精确延时方法我在书上看到过,但有好久没看了,太生疏了,这段时间忙着功课和英语六级真是麻烦。不过还 ...

) k/ U6 x; P% t6 A/ O谢谢支持
caizhiwei 回答时间:2015-1-20 09:44:45
楼主程序虽简单,但是有两行错误!, X% z; s2 ?; `7 ?& \3 v
1.systick时钟为9Mhz,所以第一句应该是9*nTime% L2 h6 Q. p0 E5 c/ }) q3 r. a/ N
2,。关闭计数器应该是:) a" Y, q( s- L3 n9 f
SysTick->CTRL=0x00;       //关闭计数器
) i7 W" A) z5 K7 C1 A0 ]/ ?9 D% E# q$ d: [
谁对谁错?不能误人子弟!请楼主出面对质!!!
天天晓宇 回答时间:2015-1-20 09:58:38
caizhiwei 发表于 2015-1-20 09:44
6 u! R" F: ?5 k2 _楼主程序虽简单,但是有两行错误!* L; P- k6 _! z5 j% ?! m
1.systick时钟为9Mhz,所以第一句应该是9*nTime
; v. h" j; D- {2,。关闭计数器应该是: ...

: s3 t0 B5 Z' H! ^( N( x! v7 u亲,对质可以啊,你在群里ID叫什么,我们去群里对质
Dylan疾风闪电 回答时间:2015-1-20 18:15:27
天天晓宇 发表于 2015-1-20 09:58" G2 P+ M8 b* t# z) T6 b, P9 S
亲,对质可以啊,你在群里ID叫什么,我们去群里对质

3 v1 E3 o4 R6 ^, F9 N很有必要看以下RCC时钟树。了解下滴答器的时钟是怎么来的。
* [& i. w) A" c" N本不想说的,现在提一下。楼主可以通过至少以下2种方式验证:1.示波器看滴答器控制GPIO电平翻转(直接又有效)。2.问ST的FAE。
7 b3 `7 Y2 X- C# v/ @& j& D1 X  G 无标题.jpg 7 L& j2 Y7 h9 {  N
  E8 i* g$ U, |3 u" k

所属标签

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