stm32 同一个定时器输入捕获测量双通道PWM占空比

stm32 cubemx 输入捕获

stm32 同一个定时器输入捕获测量双通道PWM占空比

.
最近在做蓝桥杯嵌入式的真题,发现在使用TIM3的通道1和2同时测量PWM1和PWM2的占空比时,硬件是不支持的。因为测量占空比需要一个直接通道和间接通道分别测量上升沿和下降沿的时间。所以不能同时测量,于是我想到的办法是,采用重新初始化交替测量的方法。
1、先用cubemx配置TIM3-CH1双通道输入铺货测量PWM1,配置如下,记得中断NIVC。
stm32 同一个定时器输入捕获测量双通道PWM占空比_第1张图片
2.点击自动生成代码,将初始化的TIM3相关代码复制到用户自定义区,并修改成函数名称,并且在头文件中添加函数名称。保存。
stm32 同一个定时器输入捕获测量双通道PWM占空比_第2张图片
stm32 同一个定时器输入捕获测量双通道PWM占空比_第3张图片
stm32 同一个定时器输入捕获测量双通道PWM占空比_第4张图片
3.同理,我们在重新配置TIM3-CH2的双通道输入铺货测量PWM1,配置如下:
stm32 同一个定时器输入捕获测量双通道PWM占空比_第5张图片
4、同理,将重新生成的初始化的TIM3相关代码复制到用户自定义区,并修改成函数名称,并且在头文件中添加函数名称。保存。
stm32 同一个定时器输入捕获测量双通道PWM占空比_第6张图片
5.在硬件初始化中我们要将两个硬引脚都添加上PA6和PA7.stm32 同一个定时器输入捕获测量双通道PWM占空比_第7张图片
6、我们在代码中注释自动生成的TIM3初始化,在自定义函数中选中不同时间段的TIM3-CH1和TIM3-CH2的初始化。
stm32 同一个定时器输入捕获测量双通道PWM占空比_第8张图片
stm32 同一个定时器输入捕获测量双通道PWM占空比_第9张图片

其中IC捕获中断程序
stm32 同一个定时器输入捕获测量双通道PWM占空比_第10张图片
最后,我们就可以使用同一个定时器测量双通道TIM3-CH1和TIM3-CH2的PWM1和PWM2的占空比。

你可能感兴趣的:(单片机,stm32,c语言,嵌入式硬件,蓝桥杯)