历史上的今天
今天是:2025年07月30日(星期三)
2019年07月30日 | STM32 CubeMX输入捕获测量PWM波形频率与占空比
2019-07-30 来源:eefocus
使用的开发板是官方的STM32F412ZGTx NUCLEO开发板。本次主要是为了对PWM波形进行脉宽和频率的测量。很多的工程使用的是软件对同一个通道进行3次捕获,比较耗费系统资源,本次介绍使用硬件进行捕获,尽可能降低代码的工作量。
首先打开CubeMX,做如下设置:
1.先设置定时器10,用于输出PWM波形。

2.设置TIM2,用来进行输入捕获

至于为什么这么设置,我们放在最后面说明,此处使用一路信号进行两次捕获,可以降低软件的工作量。
3.其他的串口设置,这里不做说明。时钟树设置如下:

4.对定时器10进行如下设置:

TIM10使用的频率为100M,这里分频为20M,按照图中设置的周期,输出的PWM波形的频率大概在25K左右。
Pulse用来设置占空比。
5.定时器2的参数设置如下:

使能从模式,并且工作在复位模式,且触发信号源是TI1FP1,也就是在TI1FP1的上升沿,会复位所有的计数器,并更新对应的寄存器。定时器2分频之后使用10M的信号源。此处设置的重点是,将IC1捕获设置为上升沿捕获,且设置为直连模式,IC2设置为下降沿捕获。
下面是设计原理,如下:

注意图中红色标记的地方。这样设置之后,IC1,IC2可以对同一信号进行捕获,IC1在上升沿捕获,每次上升沿触发中断,读取对应捕获寄存器的数据就可以计算频率,读取IC2的捕获寄存器可以计算占空比。

使能定时器2的全局中断,用来读取捕获寄存器的数据。

最后生成代码,打开工程添加代码如下:
打开time.c文件,在第一处添加代码如下:



在主函数中添加如下代码:

到此代码生成完成。
可以直接计算出频率和占空比。
测试结果如下:

随着占空比的调节,软件可以准确识别对应的占空比,这里可以用来进行PID控制电机的转速啥的。
配上工程代码:STM32F4的代码:
CSDN下载地址:https://download.csdn.net/download/qq86376032/10445158
史海拾趣
|
高薪招聘招聘逆向调试人员! 工作地点:吉林省长春市 工作性质: 全职(可兼职) 薪 水: 不求学历,只看实力,薪水看你的能力另谈!(一旦录用,如工作尽职,三个月后可加薪) 岗位职责: 网络游戏安全问题,分析.(外挂、木马等 ...… 查看全部问答> |
|
如果我说造飞碟,你认为是天方夜谭那么我告诉你,你落后了。在网上有几千UFO研究者和制造者!以下是关于飞碟制造的资料和设计参考!!! 瑟尔效应反重力研究群: 永动机: 分别介绍我所有的资料: 1、纳粹德国飞碟制造: &n ...… 查看全部问答> |
|
目前来说,世界范围内一直提倡着高效节能,而电力的有效利用也是其中的重要一项。一家照明公司宣称,已经开发研制成功WiFi节能LED灯.介绍中说,假如一家公司安装了200盏这种LED灯,电量消耗最多可以降低至原来的一半。如 ...… 查看全部问答> |




