LL库-PWM输出 Fang XS.1452512966@qq.com如果有错误,希望被指出 踩坑记录 使用STM32CubeMX生成的代码,通常不能直接使用。LL库的使用-USART-SPILL库的使用-I2C下文代码经验证可用。硬件平台STM32L431RCT6 PWM 以TIM2通道1为例:STM32CubeMX配置如下: 在默认初始化函数,添加如下代码: /* USER CODE BEGIN TIM2_Init 2 */ LL_TIM_CC_EnableChannel(TIM2, LL_TIM_CHANNEL_CH1); LL_TIM_EnableCounter(TIM2); LL_TIM_EnableAllOutputs(TIM2); /* USER CODE END TIM2_Init 2 */ 使用的STM32L431RCT6主频为80MHz,这里以配置PWM输出1KHz为例。PWM频率为80M / ((ARR+1)*(PSC+1)) = 80M / (79+1)*(999+1) = 1000Hz参数ModePWM模式 PWM mode 1模式下,当CNT< Pulse时,将输出CH Polarity电平。PWM占空比跟Pulse取值有关:上图设置中,ARR为999,向上计数,那么Pulse范围即0-999,对应占空比0-99%。设置Pulse为500时,逻辑分析仪抓取的波形为: 通过库函数LL_TIM_OC_SetCompareCH1(TIM2, 980);修改Pulse,输出为: