登录/注册

stm32 pwm 输入

更多

STM32 的 PWM 输入模式 是一种通过定时器的输入捕获功能测量外部 PWM 信号 周期占空比 的方法。以下是实现的关键步骤和原理:


1. 基本原理


2. 硬件连接


3. 配置步骤(以 HAL 库为例)

(1) 定时器初始化

TIM_IC_InitTypeDef sConfigIC;

// 使能定时器时钟
__HAL_RCC_TIM2_CLK_ENABLE();

// 定时器基础配置
htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;        // 预分频器(根据信号频率调整)
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 0xFFFFFFFF;  // 计数器最大值
HAL_TIM_IC_Init(&htim2);

(2) 输入捕获配置

// 配置通道1为 PWM 输入模式(捕获上升沿)
sConfigIC.ICPolarity = TIM_ICPOLARITY_RISING;
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;  // 直接连接到 TI1
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;            // 无分频
sConfigIC.ICFilter = 0;                            // 输入滤波
HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_1);

// 配置通道2为间接捕获(捕获下降沿)
sConfigIC.ICPolarity = TIM_ICPOLARITY_FALLING;
sConfigIC.ICSelection = TIM_ICSELECTION_INDIRECTTI; // 间接连接到 TI1
HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_2);

(3) 启动捕获

// 启动输入捕获并启用中断
HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_1);
HAL_TIM_IC_Start_IT(&htim2, TIM_CHANNEL_2);

(4) 中断处理

在捕获中断中读取值并计算:

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {
    static uint32_t riseValue, fallValue;

    if (htim->Instance == TIM2) {
        // 捕获到上升沿(周期)
        if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) {
            riseValue = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1);
        }
        // 捕获到下降沿(占空比)
        else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) {
            fallValue = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2);
            uint32_t period = riseValue;             // 周期 = 上升沿间隔
            uint32_t duty = fallValue;               // 占空比 = 高电平时间
        }
    }
}

4. 关键注意事项


5. 扩展应用

通过上述配置,STM32 可以高效测量外部 PWM 信号的参数,适用于遥控器信号解码、电机控制等场景。

STM32PWM波形输出配置的大神总结

STM32的PWM波形输出配置的大神总结

2023-10-24 16:00:31

STM32CubeMx入门教程(4):PWM应用

导语“使用STM32CubeMx配置定时器输出PWM波,生成初始化代码。”

2023-07-11 15:23:59

STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比

本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。

2022-11-30 14:12:45

[STM32]STM32F407系列教程之四,pwm产生原理

[STM32]STM32F407系列教程之四,pwm产生原理

资料下载 张静 2021-11-29 17:51:03

STM32F4 PWM-DAC实验例程

STM32F4 PWM-DAC实验例程(电源技术是sci吗)-STM32F4 PWM

资料下载 佚名 2021-09-16 10:14:07

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32单片机的小车PWM调速系统

基于STM32单片机的小车PWM调速系统

资料下载 jameschen1978cw 2021-06-03 09:22:20

采用PWM/PSM的升压DC-DC转换器芯片HM5175

HM5175是一款采用PWM/PSM控制的电流模式升压DC-DC转换器。其内置40兆欧高压侧开关和40兆欧低压侧开关的PWM电路使该调节器具有很高的功率效率。内部补偿网络还将外部元件计数降至6。一个内部0.6V电压连

资料下载 h1654156040.5061 2021-03-13 11:45:30

STM32CUBEMX(1)--PWM

本篇文章主要介绍如何使用STM32CubeMX输出PWM,并制作呼吸灯效果。

2022-11-14 15:29:15

STM32如何使用PWM输入模式测试频率和占空比?

STM32如何使用PWM输入模式测试频率和占空比?

2022-02-08 06:40:56

浅析stm32定时器pwm模式输入捕获

stm32定时器pwm模式输入捕获stm32中的定时器,除了TIM6和T

2021-08-19 07:33:15

stm32定时器pwm模式输入捕获功能

stm32定时器pwm模式输入捕获##stm32中的定时器,除了TIM6

2021-08-18 07:41:50

stm32输入捕获和pwm输出同时工作

stm32输入捕获和pwm输出同时工作,一、 用STM32F103输出一

2021-08-09 06:55:13

如何通过STM32的定时器输出PWM

  本文将介绍通过STM32的定时器输出PWM,如果对定时器不太熟悉的同学可以看下之前的文章《STM32基础定时器详解》,关于定时器的基础功能不

2021-02-20 15:08:25

STM32_ TIM输出PWM波形

STM32_TIM输出PWM波形

2020-04-08 11:09:32

7天热门专题 换一换
相关标签