搜索
楼主: 天天晓宇

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

  [复制链接]

该用户从未签到

0

主题

2

帖子

0

蝴蝶豆

初级会员

最后登录
2020-10-12
发表于 2017-8-20 07:13:33 | 显示全部楼层
试过了,很好用,多谢分享!
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

2290

帖子

3

蝴蝶豆

论坛元老

最后登录
2021-5-1
发表于 2017-8-20 07:56:12 | 显示全部楼层
不错,谢谢分享!
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2020-10-23
发表于 2017-9-21 09:26:18 | 显示全部楼层
此延时函数应该用宏替换来写,已获得更准确延时。
以us延时为例,函数调用比宏替换会多出0.25us左右。

以下是代码:
/* DELAY如果用函数来写,因为函数调用会有额外的花销,以1us延时测试,测得会多出0.25us左右,故采用宏替换已获得更准的延时 */
#define DELAY_US(nTime)  {SysTick->LOAD = 72    * nTime; SysTick->CTRL = 0x00000005; while(!(SysTick->CTRL & 0x00010000)); SysTick->CTRL = 0x00000004;}
#define DELAY_MS(nTime)  {SysTick->LOAD = 72000 * nTime; SysTick->CTRL = 0x00000005; while(!(SysTick->CTRL & 0x00010000)); SysTick->CTRL = 0x00000004;}
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

9

帖子

0

蝴蝶豆

新手上路

最后登录
2018-4-25
发表于 2018-2-23 10:43:36 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

新手上路

最后登录
2018-2-23
发表于 2018-2-23 19:11:21 | 显示全部楼层
不错,顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

7

帖子

0

蝴蝶豆

新手上路

最后登录
2019-5-29
发表于 2018-3-2 16:17:00 | 显示全部楼层
看看
回复

使用道具 举报

该用户从未签到

0

主题

543

帖子

26

蝴蝶豆

金牌会员

最后登录
2022-6-4
发表于 2018-3-2 21:37:52 | 显示全部楼层
不错
回复

使用道具 举报

该用户从未签到

0

主题

29

帖子

2

蝴蝶豆

初级会员

最后登录
2018-3-15
发表于 2018-3-3 10:30:35 | 显示全部楼层
kcf 发表于 2017-9-21 09:26
此延时函数应该用宏替换来写,已获得更准确延时。
以us延时为例,函数调用比宏替换会多出0.25us左右。

宏定义会占用程序空间,不过对于STM32来说应该不算什么
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

2

帖子

0

蝴蝶豆

新手上路

最后登录
2023-7-6
发表于 2018-6-29 10:33:41 | 显示全部楼层
谢谢分享
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

蝴蝶豆

新手上路

最后登录
2020-7-25
发表于 2020-6-27 18:03:04 | 显示全部楼层
感谢楼主
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-20 02:25 , Processed in 0.168306 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表