STM32
直播中

shawon

12年用户 622经验值
私信 关注
[问答]

请问stm32cubemx如何配置PWM?

请问STM32cubemx如何配置PWM?

回帖(1)

魏茂娜

2021-11-25 11:36:48
STM32F4定时器时钟频率和时钟源

  
  

  

(1)高级定时器timer1, timer8以及通用定时器timer9, timer10, timer11的时钟来源是APB2总线
(2)通用定时器timer2timer5,通用定时器timer12timer14以及基本定时器timer6,timer7的时钟来源是APB1总线
  cubemx配置

  以下转自:https://blog.csdn.net/qq_42967008/article/details/89267010
  一、打开Cube,建立工程

  图片:
  

  

点击ACCESS project from MCU
然后选择芯片类型(我这里选的是F103C8T6)
图片:
  

  

  二、系统配置

  在 Pinout&Configuration—System Core中:
设置时钟RCCHSE(外部高速时钟)为晶振模式:
Crystal/ceramic Resonator
  

  

设置系统SYSDebugSerial Wire(SWD调试)
  

  

  三、配置PWM

  在 Pinout&Configuration—Timers中:
打开TIM3,在TIM3 Mode and Configuration中设置CH1,CH2,CH3,CH4的模式为PWM输出模式:
  

  

(我这里是TIM3输出四路PWM)
配置预分频系数
在Configuration中设置预分频系数为72-1,自动重装值为500-1,则PWM的输出频率为72000000/72/500=2000Hz。根据需要配置PWM有效极性,我这里设置为High:
  

  

  四、在 Clock Configuration中:

  配置时钟为72 Mhz。

  

  

  五、工程输出配置

  
  

  

Tips:最好把Linker Settings中的Minimum Heap Size设置为0x600。

  

  

最后点击GENERATE CODE代码就生成了:

  

  

至此,一个工程就创建完了。
  六、代码部分处理

  HAL库的PWM控制函数
  HAL_TIM_PWM_Start//PWM启动函数 HAL_TIM_PWM_Stop//PWM停止函数 _HAL_TIM_SET_COMPARE//占空比 _HAL_TIM_SET_AUTORELOAD//周期   注意
  TIM3->CCR2 = dutyCycle

__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, dutyCycle);
作用相同
  注意!!!一定在主函数中加入PWM开启函数

  

  

  到此,输出正常
  
举报

更多回帖

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