目录
接线图
1、控制PWM频率
PWM.c文件中,由于PWM的频率是在初始里写好的,运行的时候调节不方便,可在最后加一个函数,用来便捷地调节PWM频率
若调节ARR,会影响占空比,因此可调节PSC来控制PWM频率
2、步骤
(1)RCC开启时钟,把GPIO和TIM的时钟打开
(2)GPIO初始化,把GPIO配置成输入模式(一般选择上拉输入或浮空输入模式)
(3)配置时基单元,让CNT计数器在内部时钟的驱动下自增运行(与之前代码一样)
(4)配置输入捕获单元(包括滤波器、极性、直连通道还是交叉通道、分频器),用一个结构体就可以统一进行配置
(5)选择从模式的触发源(触发源选择TI1FP1,调一个库函数,给一个参数就行)
(6)选择触发之后执行的操作(执行Reset操作,需调用一个库函数)
(7)调用TIM_Cmd,开启时钟
需要读取最新一个周期的频率时,直接读取CCR寄存器,然后按照 fc/N 计算一下就行
3、函数介绍
4、输入捕获测频率代码
(1)RCC开启时钟,把GPIO和TIM的时钟打开
(2)GPIO初始化,把GPIO配置成输入模式(一般选择上拉输入或浮空输入模式)
(3)配置时基单元,让CNT计数器在内部时钟的驱动下自增运行(与之前代码一样)
(4)初始化输入捕获单元
(5)配置TRGI的触发源为TI1FP1
(6)配置从模式为Reset
(7)写读取CCR并计算频率的函数
fc = 72M / (PSC+1)= 72M / 72 = 1M
N为读取的CCR的值
5、PWMI模式测频率和占空比
(1)基于上面的代码所做更改
方法一,复制一份,进行修改参数
方法二,调用下列参数,与上一方法等效(只支持通道1和通道2的配置)
(2)增加获取占空比的参数
CCR2 / CCR1 所得范围为0~1,乘个100,范围为0~100,可更直观反应占空比
6、注意
所测频率下限:
若给的标准频率【72M / (PSC+1)】为1MHz,计数器最大只能计到65535(ARR=65536-1),则所测量最低频率为1MHz / 65535,约为15Hz,若信号频率再低,计数器就将溢出(ARR不能再增加)(认为PSC不变时)。
若要降低最低频率的限制,可将预分频(PSC)加大
所测频率上限为标准频率,这里为1MHz,再大的话误差就会很大。若要提高上限,可将PSC降低来提高标准频率的值,若频率再高,可考虑测频法。
由图可知,ARR、CNT、CCR最大值相同