STMCU小助手
发布时间:2022-2-25 20:14
|
导语 当使用 Timer 做捕获输入时,有时候需要将捕获得到的数据通过 DMA 方式写到定义好的数据或数组中,本文将详细介绍使用 CubeMx 配置 PWM 捕获功能,用户可以直接得到输入的 PWM 信号的频率以及占空比,Cube 库可以很方便配置。 实验过程中,当配置超过两个以上的 Timer 通道 DMA 时会遇到一些问题,本文也对其进行了说明并给出了解决方案。 Timer2 的 PWM 信号捕获功能 使用 Timer 的 IC1,IC2 两个捕获输入通道,两个通道的外部管脚输入配置为相同 TI1 通道; 两个通道的捕获输入极性,一个为 Active,另外一个为 Inactive; 其中一个 TI1FP1 作为触发输入,从模式配置为复位模式; 这样 CCR1 为 PWM 输入的频率值,CCR2 为占空比值(正/负)。
使用 CubeMx 对外设进行初始化配置: Step1: TIM1 的输出 PWM 波作为捕获输入的被测信号,输出管脚为 PA8 Step2: TIM2 的输入管脚为 PA5(CH1)
Step3: 配置 TIM2 的输入捕获参数
Step4: 捕获数据直接通过 DMA 方式保存到 RAM 变量 Update_Value1 和 Update_Value2。
Step5: 测试读取到的 CCR1、CCR2 的数据与 Update_Value1、Update_Value2 对应,PWM 波的频率和占空比都可以捕获得到。
实验过程要点提示 在 stm32f3xx_hal_tim.c 库文件中的 HAL_TIM_IC_Start_DMA 函数中会将状态置忙。
但在函数结尾配置完毕后没有将该状态位复位,如果客户在其用户程序中使用了这个函数,这会导致该状态位始终为忙,后续任何对该状态的判断配置都将无法执行:
因此需要在函数的最后将状态复位:
本文小结 本文重点介绍利用 STM32CubeMx 初始化配置工具和 STM32Cube 库如何通过 TIMER 的捕获功能完成对频率、占空比的测试,同时我们对如何解决实验过程中遇到的一些问题,做了特别提示。我们知道 STM32Cube 库非常庞大,虽难尽善尽美,但一定会越来越强大、越来越完善。 |
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
OpenSTLinux 6.1发布:M33-TD加持+安全升级,STM32MPU开发效率翻倍!
【经验分享】STM32CubeIDE汉化
手把手教你VSCode搭建STM32开发环境
RTOS在STM32中的应用
【下载有礼】STM32 Finder华为应用商店正式上线!移动选型工具助力开发效率升级
【2025·STM32峰会】GUI解决方案实训分享5-调通板载的NRF24L01 SPI接口并使用模块进行无线通信(发送和接收)
微信公众号
手机版