你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
【经验分享】STM32中实用的精确延时方法
[复制链接]
天天晓宇
发布时间:2015-1-7 10:11
阅读主题, 点击返回1楼
赞
0
收藏
18
评论
109
分享
发布时间:2015-1-7 10:11
请先
登录
后回复
109个回答
老胖熊
回答时间:2015-2-26 17:14:02
a0a.1 32b0c
学习
赞
评论
回复
支持
反对
拼命三郎
回答时间:2015-2-27 08:15:57
a0a.1 32b0c
赞
评论
回复
支持
反对
拼命三郎
回答时间:2015-2-27 08:17:50
a0a.1 32b0c
赞
评论
回复
支持
反对
ataudio
回答时间:2015-3-9 20:29:09
a0a.1 32b0c
我在F407上使用此函数延时,函数设置为:
( i3 K3 `# L8 i6 f1 t1 F9 h
void Delay_us(__IO uint32_t nTime)
3 @1 G! |1 d; n; ?: v
{
1 S1 B' h: A4 |3 m$ Q% l: ~: N/ f
SysTick->LOAD = 144*nTime;
7 g- ?# Z. b; H) O3 b# c: C8 V, K
SysTick->CTRL = 0x00000005;
6 b Y; X+ E) M+ D6 Z @
while(!(SysTick->CTRL & 0x00010000));
$ \" d) f' v; K& A- u
SysTick->CTRL = 0x00000004;
; f) l" F8 D F2 l# Y$ J: n
}
z, x8 H5 c9 ]6 h( Q( @
无延时产生。我还没细看手册上起停定时器寄存器的值,不过直接套用无效。不知道楼主在F407上有没有测试过此寄存器?
% }: I% B" W. Z% I4 Y4 {- @# p
0 I1 e8 D$ ]( ]# b
经过示波器测试,中断延时180us时,平均误差约在0.3us,但偏移范围在0.7个us以内。精度基本可以接受。
赞
评论
回复
支持
反对
waytoanswer
回答时间:2015-3-9 21:16:19
a0a.1 32b0c
http://www.openedv.com/posts/list/22061.htm
8 }' k6 h$ S8 g$ w1 ?
这里有一种新的延时方式,不占用任何定时器或中断而且可以精确到纳秒级
赞
评论
回复
支持
反对
hehe212121
回答时间:2015-3-9 21:20:09
a0a.1 32b0c
学到东西了
赞
评论
回复
支持
反对
zhangdaijin
回答时间:2015-3-10 09:37:25
a0a.1 32b0c
好帖子 加油
赞
评论
回复
支持
反对
1407W
回答时间:2015-3-10 16:30:16
a1024a.1 32b0c
楼主好人
赞
评论
回复
支持
反对
adjj
回答时间:2015-3-10 18:31:17
a0a.1 32b0c
不错,学习先,呵呵
赞
评论
回复
支持
反对
wyxy163@126.com
回答时间:2015-3-11 15:15:14
a1024a.1 32b0c
提示:
作者被禁止或删除 内容自动屏蔽
赞
评论
回复
支持
反对
wyxy163@126.com
回答时间:2015-3-11 15:15:35
a1024a.1 32b0c
提示:
作者被禁止或删除 内容自动屏蔽
赞
评论
回复
支持
反对
千羽猎鹰
回答时间:2015-3-11 17:09:00
a0a.1 32b0c
学习了 就是不知道这个是有啥用途
赞
评论
回复
支持
反对
寂寞如她
回答时间:2015-3-11 19:49:40
a0a.1 32b0c
好帖,必须顶
赞
评论
回复
支持
反对
foxglove
回答时间:2015-3-12 07:55:01
a0a.1 32b0c
STM32中实用的精确延时方法
赞
评论
回复
支持
反对
baiying303
回答时间:2015-3-12 08:48:14
a1024a.1 32b0c
感谢分享
赞
评论
回复
支持
反对
1
2
3
4
5
6
7
8
/ 8 页
下一页
所属标签
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
void Delay_us(__IO uint32_t nTime)
{1 S1 B' h: A4 |3 m$ Q% l: ~: N/ f
SysTick->LOAD = 144*nTime;
SysTick->CTRL = 0x00000005;6 b Y; X+ E) M+ D6 Z @
while(!(SysTick->CTRL & 0x00010000));$ \" d) f' v; K& A- u
SysTick->CTRL = 0x00000004;
}
无延时产生。我还没细看手册上起停定时器寄存器的值,不过直接套用无效。不知道楼主在F407上有没有测试过此寄存器?% }: I% B" W. Z% I4 Y4 {- @# p
经过示波器测试,中断延时180us时,平均误差约在0.3us,但偏移范围在0.7个us以内。精度基本可以接受。
这里有一种新的延时方式,不占用任何定时器或中断而且可以精确到纳秒级