tim是什么,有什么用,怎么用,channel是什么,有什么用,怎么用


1. TIM 是什么?

  • TIM = Timer 定时器外设
  • STM32 内部有很多定时器,比如 TIM1、TIM2、TIM3 …
  • 它们本质上是一个 计数器 + 控制逻辑,可以按设定的时钟源和分频值计数。

TIM 的主要作用:

  1. 定时中断

    • 比如每 1ms 触发一次中断,用于任务调度、按键扫描。
    • (类似操作系统的“时钟节拍”)。
  2. 输出 PWM

    • 用于电机调速、LED 灯调光。
  3. 输入捕获

    • 捕获外部信号的高电平/低电平时间,用来测量频率/占空比(如超声波测距)。
  4. 编码器接口

    • 可以直接读取旋转编码器的脉冲,实现转角/速度测量。

2. TIM1 是什么?

  • STM32 有多个定时器,其中:

    • TIM1 和 TIM8 → 高级定时器(支持互补 PWM、死区控制,常用于电机控制)。
    • TIM2 ~ TIM5 → 通用定时器。
    • TIM6、TIM7 → 基本定时器(只有中断功能,没有通道)。

👉 所以 TIM1 是一个高级定时器,功能最强大。


3. Channel(通道)是什么?

  • 定时器往往有多个 通道(Channel),每个通道可以独立配置模式。
  • 例如 TIM1 有 4 个通道:Channel 1、2、3、4。

通道的作用:

  1. PWM 输出模式

    • 一个定时器可以同时输出多个 PWM 信号(比如四路 LED 调光)。
    • TIM1_CH1 可以输出 PWM1,TIM1_CH2 可以输出 PWM2 …
  2. 输入捕获模式

    • 不同通道可以接不同的输入信号,测量多个外部脉冲。
  3. 比较输出模式

    • 定时器计数到某个值时,让通道输出一个翻转脉冲。

4. 举个例子(PWM)

假设我们用 TIM1 的 Channel 1 产生一个 1kHz 的 PWM,50% 占空比。

  • TIM1 作为计数器,决定 PWM 的频率
  • Channel 1 决定这个通道的 占空比 和输出波形。
  • 引脚:在 STM32 芯片里,TIM1_CH1 对应某个 GPIO(如 PA8)。配置成复用功能后,就能在该引脚输出 PWM 波形。

代码示例(HAL 库):

// 配置 TIM1
htim1.Instance = TIM1;
htim1.Init.Prescaler = 72-1;     // 分频,1 MHz 计数
htim1.Init.Period = 1000-1;      // 自动重装载,1 kHz PWM
HAL_TIM_PWM_Init(&htim1);

// 配置 Channel 1
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 500;           // 占空比 = 500/1000 = 50%
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);

// 启动 PWM
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);

👉 PA8 引脚就会输出 1kHz、50% 占空比的 PWM 波形。


5. 总结

  • TIM:定时器外设,用来计数,可以做定时中断、PWM、捕获等。
  • TIM1:STM32 的高级定时器,功能最强,常用于电机控制。
  • Channel(通道):定时器的“子通道”,可以独立输出 PWM 或做输入捕获。
  • TIM1_CH1:就是 TIM1 的第一个通道,可以单独配置(比如输出 PWM 到某个引脚)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值