硬汉嵌入式论坛

 找回密码
 立即注册
查看: 873|回复: 5
收起左侧

STM32的定时器可以输出0.1Hz的PWM不?

[复制链接]

6

主题

16

回帖

34

积分

新手上路

积分
34
发表于 2022-6-6 00:34:11 | 显示全部楼层 |阅读模式
请教各位大佬,STM32的定时器可以输出0.1Hz的PWM不?
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2022-6-6 08:44:32 | 显示全部楼层
可以通过定时器的级联,实现非常长的计时周期(低频率)。 就是用一个定时器的溢出信号,作为另一个定时器的时钟信号。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106715
QQ
发表于 2022-6-6 11:15:37 | 显示全部楼层
无压力啊。

PWM频率 = TIMxCLK / (usPrescaler + 1)/(usPeriod + 1)

16bit定时器可以的,32bit定时器更可以。
回复

使用道具 举报

39

主题

196

回帖

323

积分

高级会员

积分
323
发表于 2022-6-6 11:32:47 | 显示全部楼层
以前刚开始学stm32的时候,仔细的阅读过定时器章节,写过实现的代码,里面有个主从定时器的功能,就能满足你这个需求。
实现的思路应该和二楼说的一样。但是因为很久没用过这个功能,我下面的叙述可能会有错误,仅做一个大概的参考:
Snipaste_2022-04-07_13-27-23.png

我们这里需要使用这个功能,以TIM3和TIM2为例,TIM3为主定时器,为TIM2提供时钟。
如果把TIM3的周期改为1HZ,然后TIM2的自动重装载值设置为10。应该就可以输出0.1HZ的波形了。
Snipaste_2022-06-06_11-26-15.png
手册里的描述如上(我这个手册是别的型号的,不是f4的,不过应该没差别吧)


你可以参考这里的描述去修改对应寄存器的值就行了,Hal库的api具体是哪个我不太清楚,当时我是用标准库写的。








回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106715
QQ
发表于 2022-6-6 14:52:04 | 显示全部楼层
不需要做级联啊,直接配置就行了,贼简单,例子分享。

定时器直接输出0.1Hz波形是否可以,明确的说,完全没问题,提供个配置代码(2022-06-06)
https://www.armbbs.cn/forum.php? ... d=112714&fromuid=58
(出处: 硬汉嵌入式论坛)


回复

使用道具 举报

6

主题

16

回帖

34

积分

新手上路

积分
34
 楼主| 发表于 2022-6-8 12:51:38 | 显示全部楼层
eric2013 发表于 2022-6-6 14:52
不需要做级联啊,直接配置就行了,贼简单,例子分享。

定时器直接输出0.1Hz波形是否可以,明确的说,完 ...

好的好的,谢谢哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-30 15:10 , Processed in 0.268667 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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