STM32 高级定时器PWM输入模式实验

PWM输入模式工作原理

输入的PWM信号从TIMx_CH1中进入,经过TIX,其中IC1和IC2都被映射到同一个TIX上,因此我们可以选择TI1FP1为上升沿触发,TI1FP2为下降沿触发。当信号第一次被上升沿触发时,从模式控制器选择复位模式,此时CNT=0,然后接收到下降沿信号时,产生中断,CNT的数被保存到捕获/比较寄存器2中,当再次接收到上升沿时,再次产生中断,将此时CNT的计数保存至捕获/比较寄存器1中。此时CCR1中的计数为整个周期的计数值,CCR2中的计数为PWM高电平计数值,通过计算即可得到时间。

输入模式时序图

本次实验所使用的PWM波为通用定时器所产生的。

一些关键性的HAL库函数

atim.h 

句柄以及变量:

 tim_pwm_ic_init();

 

 Msp函数:

 中断服务函数:

 重新捕获函数以及回调函数:

 main.c

 实验现象通过示波器:

 

本实验其实还有一些问题以及我自己没考虑明白的事情:

1.为什么串口调试助手显示不了printf所打印的值;

2.为什么当PC6为输入口时,模式设置的是为复用推挽(我认为是input,但是原子哥设置的是复用推挽,我不理解);

3.虽然时序图上显示再次接受到高电平时,只会进行周期测量,为什么不会进行CNT置零呢?

4.在回调函数中,第二个+1具体是因为什么,视频中只是随便带了一嘴说是为了误差补偿。

希望有大神能帮忙解决一下,因为是自学,所以请教他人,所以有任何想法都可以评论或者私信我!谢谢大家!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值