打印
[STM32F1]

定时器实现微秒延时(us)函数

[复制链接]
楼主: kkzz
手机看帖
扫描二维码
随时随地手机跟帖
21
averyleigh| | 2024-6-8 22:31 | 只看该作者 回帖奖励 |倒序浏览
需要配置定时器的计数器模式,如向上计数或向下计数。

使用特权

评论回复
22
minzisc| | 2024-6-9 10:08 | 只看该作者
在使用微秒延时函数时,需要注意延时嵌套的问题。

使用特权

评论回复
23
ulystronglll| | 2024-6-9 17:58 | 只看该作者
对于微秒级别的延时,通常使用高级定时器

使用特权

评论回复
24
xuanhuanzi| | 2024-6-9 18:08 | 只看该作者
自带的那个函数是毫秒级的。

使用特权

评论回复
25
xuanhuanzi| | 2024-6-9 18:08 | 只看该作者
其实可以修改一下,成为微秒级的

使用特权

评论回复
26
jkl21| | 2024-6-9 21:24 | 只看该作者
为了提高代码的效率和可读性,应当对延时函数进行优化,减少不必要的计算和判断。

使用特权

评论回复
27
1988020566| | 2024-6-10 14:20 | 只看该作者
STM32的CPU时钟频率和定时器的预分频器、自动重载值(ARR)等因素都会影响定时精度。

使用特权

评论回复
28
pentruman| | 2024-6-10 17:39 | 只看该作者
需要确保延时函数的实现与系统其他部分兼容,尤其是中断和任务调度。

使用特权

评论回复
29
gouguoccc| | 2024-6-10 17:48 | 只看该作者
用定时器可以实现精确延时

使用特权

评论回复
30
primojones| | 2024-6-10 22:33 | 只看该作者
为了获得更精确的定时,可以通过设置定时器的预分频器和分频器来调整定时器时钟源的频率。

使用特权

评论回复
31
dspmana| | 2024-6-11 16:04 | 只看该作者
实际应用中可能受到系统抖动的影响。如果系统在执行延时函数时被打断,可能导致实际的延时比期望的长。

使用特权

评论回复
32
youtome| | 2024-6-11 20:00 | 只看该作者
根据系统时钟的频率和定时器的配置计算出准确的延时时间。使用延时函数时,确保每次调用延时函数时,系统时钟和定时器配置没有发生变化。

使用特权

评论回复
33
hearstnorman323| | 2024-6-12 12:13 | 只看该作者
STM32有多个定时器,如TIM1、TIM2、TIM3等,具有不同的频率和特性。

使用特权

评论回复
34
jkl21| | 2024-6-12 16:26 | 只看该作者
使用定时器的连续递增模式而非中断模式来实现延时,可以减少中断响应的开销和复杂性

使用特权

评论回复
35
maudlu| | 2024-6-13 21:04 | 只看该作者
定时器的时钟源可以是内部时钟(如APB1或APB2时钟)、外部时钟或内部其他定时器的输出时钟。选择合适的时钟源可以确保定时器的计数频率与预期的延时精度相匹配。

使用特权

评论回复
36
eefas| | 2024-6-14 11:56 | 只看该作者
TIM1、TIM2、TIM3等高级定时器具有更高的计数器分辨率和更高的计数器最大值,更适合用于微秒延时。

使用特权

评论回复
37
wwppd| | 2024-6-14 15:39 | 只看该作者
配置定时器以使用合适的时钟源。通常,这将是系统时钟的一个分频,例如APB1或APB2分频器。
设置定时器的计数模式(向上、向下、中心对齐等)以及溢出行为。
确定定时器的计数器大小(16位或32位),并据此配置计数器的最大值(计数器溢出值)。

使用特权

评论回复
38
LinkMe| | 2024-6-14 18:13 | 只看该作者
对于微秒延迟,通常使用高级计时器

使用特权

评论回复
39
adolphcocker| | 2024-6-14 22:09 | 只看该作者
如果在延时期间需要执行其他任务,则可以考虑使用中断来完成延时,并在中断服务程序中递减计数器。
或者,如果延时期间不需要执行其他任务,则可以简单地轮询计数器的值,直到它到达零。

使用特权

评论回复
40
earlmax| | 2024-6-15 14:54 | 只看该作者
定时器的时钟源通常是系统时钟的分频或者直接来自APB1或APB2总线时钟

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则