一、工程配置
开启TIM3,选择Internal Clock作为时钟源,将Channel配置为PWM Generation CH1,设置PWM输出频率、输出模式和极性,设置对应引脚的速度和GPIO上下拉。
二、编写代码
Cubemx生成了有关PWM的配置代码,在main中开启相关通道即可使引脚输出PWM,调用函数HAL_TIM_PWM_Start开启PWM功能,对定时器TIMx->CCRx寄存器操作可设置PWM占空比,占空比计算:duty=TIMx->CCRx / 自动重装载值(1000-1)。注意:用户编写代码时要在指定代码区域编写,防止下次使用CubeMX生成代码时清除掉用户编写的代码。
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM3_Init();
/* USER CODE BEGIN 2 */
//开启定时器PWM输出功能
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
/*
占空比计算:duty=TIMx->CCRx / 自动重装载值(1000-1)
*/
TIM3->CCR1=100;//10%占空比
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}