GD32F303固件库开发(13)----定时器TIM捕获PWM测量频率与占空比
概述
本章配置GD32F303输出PWM,同时使用TIM测量PWM频率和正占空比。 查阅手册可以得知,PB11为定时器1的通道3,让其输出PWM,PA6为定时器2的通道0,让作为TIM定时器输入。 需要GD样片的可以加群申请:615061293 。


视频教学
https://www.bilibili.com/video/BV1tg411m7pb/
csdn课程
课程更加详细。 https://download.csdn.net/course/detail/37144
样品申请
https://www.wjx.top/vm/wFGhGPF.aspx#
生成例程
这里准备了自己绘制的开发板进行验证。

管脚图如下所示。


keil配置
microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。 某些库函数的运行速度也比较慢,如果要使用printf(),必须开启。

使能串口
串口重定向
串口重定向后就可以使用printf进行打印。
占空比与频率计算
占空比=(t1-t0)/(t2-t0) 频率=(t2-t0)/时钟频率= =(t2-t0)/(120M/(psc+1))

周期需要2个上升沿去判断,设定第一个上升沿time_flag由0->1,下降沿time_dowm_flag由0->1,此时就知道正占空比时间,当在产生上升沿时候,就可以计算出周期使用的时间。

GPIO初始化
开启中断
TIM1输出PWM初始化
PWM频率计算如下所示。

TIM2输入捕获设置
中断
初始化
主程序
测试结果
当输出1k频率,50%正占空比。
