环境
单片机:STM32F103C8
编译环境:STM32CUBE+KEIL
功能
使用单片机捕获PWM信号。
方案
使用TIM3的combined channels功能捕获;
![在这里插入图片描述](https://img-blog.csdnimg.cn/59f65339160748dcbbd6e5c73a4e014a.png#pic_center)
1、首先,STM32CUBE配置如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/fccf498a3dda4327920a8cc3c56bdf7a.png)
参数配置如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/eac3b05494084c318233348b7a7ae0e7.png)
72M的主时钟,7200分频后,单个计数时间是0.0001秒,最大计时长度是0.0001*65535=0.65535秒,所以最小频率不能小于1.5Hz。同时这个分频也影响你对频率测量的精度。
2、直接生成代码:
在生成的代码里面,开启捕获中断
![在这里插入图片描述](https://img-blog.csdnimg.cn/a9a1302b5d794dba9bc99f59742ab6b5.png)
3、在中断函数中,启用捕获回调函数:
![在这里插入图片描述](https://img-blog.csdnimg.cn/74feac0fcb5548a2844ca3a6802c8cd8.png)
4、然后就用上面的2个参数,进行频率,周期,占空比的测试就行了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b3a688fd5ba45a581f8f434da6989dc.png)