打印
[其他ST产品]

STM32一个定时器产生4路 独立调频率

[复制链接]
417|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32 一个定时器产生4路 独立调频率,占中比可调,脉冲个数可以统计。

实现这个功能,基本原理是利用STM32 的输出比较功能。

使用特权

评论回复
沙发
逢dududu必shu|  楼主 | 2022-3-29 16:40 | 只看该作者

使用特权

评论回复
板凳
逢dududu必shu|  楼主 | 2022-3-29 16:42 | 只看该作者
1、其它设置就是普通定时器的设置这里开启,四个输出比较中断,和一个更新中断,

更新中断这里不需要开也可以达到目的,我这里开启是做其它的用处的。设置TIM2->DIER 开启对应中断

使用特权

评论回复
地板
逢dududu必shu|  楼主 | 2022-3-29 16:42 | 只看该作者

使用特权

评论回复
5
逢dududu必shu|  楼主 | 2022-3-29 16:43 | 只看该作者
这是中断服务函数中的一段,框出来的就是实现调频率的,

首先要知道,定时器的CNT=CCRx就会产生一个中断,每次修改

CCRx中的值,CNT照常加,当CNT=CCRx时就重新设置一个值,为

CNT的追赶值,这时就可以通过改写CCRx的值达到改变频率的目的了。

使用特权

评论回复
6
逢dududu必shu|  楼主 | 2022-3-29 16:44 | 只看该作者
这时如果使能了对应的输出,定时器的对应通道也会输出电平(操作TIMx->CCMRx中的OCxM)。

使用特权

评论回复
7
逢dududu必shu|  楼主 | 2022-3-29 16:45 | 只看该作者

使用特权

评论回复
8
逢dududu必shu|  楼主 | 2022-3-29 16:46 | 只看该作者
注意:频率可调的前提是不能使能,通道的预装载,只要不使能这个位,每次更改的CCMRx的值就会即时生效。当然脉冲个数就只需要在中断中计数就可以了              0.0;

                            波形个数 = 计数值/2                                                                                                                                          

使用特权

评论回复
9
逢dududu必shu|  楼主 | 2022-3-29 16:47 | 只看该作者
假如要调节占空比的话,只需要将追赶值分开就可以了。例如 追赶值 = 6000  在单次次进入中断 CCMRx = 4000 双次进入中断的时候CCMRx = 2000这样不就调节成占空比

1/3了么

使用特权

评论回复
10
逢dududu必shu|  楼主 | 2022-3-29 16:48 | 只看该作者

使用特权

评论回复
11
逢dududu必shu|  楼主 | 2022-3-29 16:49 | 只看该作者

使用特权

评论回复
12
逢dududu必shu|  楼主 | 2022-3-29 16:50 | 只看该作者

使用特权

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

本版积分规则

60

主题

442

帖子

0

粉丝