蓝桥杯嵌入式省赛模板构建——测量两路频率和占空比

本文介绍了如何利用STM32G4系列微控制器的TIM2和TIM3测量PWM的频率和占空比,通过上升沿和下降沿中断处理,计算出T1和T2值,进而得出频率和占空比,并在LCD上显示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结合测量一路PWM频率编程

PA15:TIM2通道1    PB4:TIM3通道1

测量占空比:测量高电平持续时间和周期

思路:

①.第一次上升沿中断,清零计数器,开始计时并改成下降沿中断

②.下降沿中断,获取计数值T1,并改为上升沿中断

③.第二次上升沿中断,获取计数器的值T2,此时T2为PWM的频率,通过(T1/T2)×100%可以获得PWM的占空比

测量一路PWM频率和占空比

基于测量两路PWM频率的工程文件继续编写

首先当第一次上升沿中断并计数后,我们需要更改下次中断为下降沿中断

打开STM32G4系列微控制器参考手册的第29.5.11章节

要改变上升沿或下降沿的中断触发,则需要改变两个寄存器CC1NP和CC1P

由于CC1P是CCER寄存器的第2位,所以TIM2->CCER |= 0x0002就是把CC1P置为1

创建变量

u32 tim2_cnt1:用来存放T1(第一次下降沿触发时的计数值)

u32tim2_cnt2:用来存放T2(第二次上升沿触发时的计数值)

u32 tim3_cnt1:用来存放T1(第一次下降沿触发时的计数值)

u32 tim3_cnt2:用来存放T2(第二次上升沿触发时的计数值)

u32 F39:用来存放TIM3转换后的频率值

u32 F40:用来存放TIM2转换后的频率值

float D39:用来存放TIM3转换后的占空比

float D40:用来存放TIM3转换后的占空比

tim2_state = 0:用来更改CCER寄存器,更改上升下降沿触发中断 0:开始计时,1:获取T1(下降沿触发),2:获取T2(上升沿触发)

tim3_state = 0:

测量R40的PWM频率和占空比

测量两路PWM频率和占空比

和上面相似

将得到的R40和R39的频率和占空比在LCD上显示出来

·

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值