caoyunhj2301 发表于 2021-12-29 19:02

Stm32CubeMx 完成PWM输入模式采集频率和占空比

Stm32CubeMx配置        Stm32的芯片参考手册里面关于定时器的PWM输入模式的操作介绍,我这里就不贴出来了,详细的资料网上有很多的。我们直接开始关于
CubeMx的配置介绍。
        选芯片的操作就不贴图了,直接从芯片的功能配置开始:



caoyunhj2301 发表于 2021-12-29 19:18

这里是选择外部晶振高速时钟输入。

caoyunhj2301 发表于 2021-12-29 19:24

RCC配置完了,个人习惯马上把时钟配置好。

caoyunhj2301 发表于 2021-12-29 19:24

我使用的是DAP仿真器,使用的SW接口。这里特别提醒一下新手,记得将这个Debug选项选好,不然等下程序的时候,第一次下进去了,后面可能就会下不了程序。具体原因啥的就不在这说明了。然后选择基本时钟资源SysTick。

caoyunhj2301 发表于 2021-12-29 19:26

caoyunhj2301 发表于 2021-12-29 19:27

我这里举例使用的是普通的TIM4定时器。Clock Source选择内部时钟资源;模式选择Combined Channels 为PWM输入模式,上图中的PWM Input on CH2 指的是我使用的Input Trigger 是TI2FP2,stm32的手册举例中使用的是TI1FP1。然后,TIM4在APB1上,即时钟频率是72MHz。所以Parameter Settings中我们使用(71 + 1)分频,使用1M的计数频率去测量PI。然后其他的不需要动,我们来说说Parameter Settings中最主要的PWM Input CH2的设定。

caoyunhj2301 发表于 2021-12-29 19:28

caoyunhj2301 发表于 2021-12-29 19:30

当我们的选择PWM Input On CH2时,Input Trigger就自动的选定为TI2FP2。然后需要重点说明的关于Channel 1和Channel 2的设定:由stm32官方手册关于PWM输入介绍,我们可以知道,我们需要一路只采上跳沿来获取周期,另一路只采集下跳沿来获取占空比,所以我们这里选择通道2采集上跳沿,那么等下在代码中我们就得从通道2的捕获寄存器中取值来计算频率,从通道1的捕获寄存器取值来计算占空比。至于参数Input Filter就是用来设置输入触发滤波器,这个手册有介绍。

caoyunhj2301 发表于 2021-12-29 19:30

caoyunhj2301 发表于 2021-12-29 19:37

打开TIM4的中断,其他的定时器可能选项有些不同,但是你将鼠标移到NVIC Interru Settings栏中的各个中断选项名上,stm32cubemx就会显示出他是对应的什么中断的IRQ通道,然后对照手册选择你需要的中断勾选上就可以了。

caoyunhj2301 发表于 2021-12-29 20:07

caoyunhj2301 发表于 2021-12-29 20:08

引脚设置这里提一句,如果想保证保证没有信号输入的时候电平稳定,就把它设置为下拉。

caoyunhj2301 发表于 2021-12-29 20:09

caoyunhj2301 发表于 2021-12-29 20:09

caoyunhj2301 发表于 2021-12-29 20:11

caoyunhj2301 发表于 2021-12-29 20:13

主要的已经设置完了,现在就是最后的工程文件的设置了,这个就网上的解释有很多,我就不多赘述了。下面我们来看生成的工程。
页: [1]
查看完整版本: Stm32CubeMx 完成PWM输入模式采集频率和占空比