ST意法半导体
直播中

向日葵的花季

8年用户 1225经验值
擅长:电源/新能源
私信 关注
[问答]

我如何计算寄存器生成的脉冲并在som脉冲后停止生成呢?

我正在使用 STM32F446 控制步进电机,并希望生成具有可变频率(梯形)的 PWM 并在一些指定的 (n) 脉冲后停止它。我想用寄存器编程而不是 HAL 函数来做到这一点。所以我想知道以下三个步骤:
  • 如何使用寄存器生成 PWM 脉冲?
  • 我怎样才能改变它的频率?
  • 我如何计算生成的脉冲并在 som 脉冲后停止生成?
有人可以帮我注册编程吗?


回帖(1)

刘峰

2023-1-4 16:40:08
首先阅读 RM 中的 TIM 章节。第一次阅读时不会很清楚,所以重复直到开始更清楚一点。


  • 设置所需的引脚 - 在 RCC 中启用 GPIO 时钟,然后在给定的 GPIO 中设置 GPIOx_MODER 中的相应位,以便将引脚设置为 AF,并根据数据表中的表格在 AFR[] 中设置正确的 AF。设置定时器运行,即在RCC 中启用其时钟,将TIMx_ARR 设置为您想要的周期并通过设置TIMx_CR1.CEN=1 启用定时器运行。对于给定通道,在 TIMx_CCMRx.OCxM 中设置一种 PWM 模式,通过将相应的 TIMx_CCRx 设置为 0 和 ARR 之间的值来设置占空比,并在 TIMx_CCER 中启用给定通道。如果是 TIM1 或 TIM8,设置 TIMx_BDTR.MOE。
  • 通过改变 TIMx_ARR。如果您想即时执行此操作,则应通过设置 TIMx_CR1.ARPE 来启用 ARR 预加载。
  • 有几种方法可以做到这一点,但它有点棘手,您应该在管理基本 PWM 操作之前保留它。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分