一、
1、配置RT-Thread Settings

配置完毕记得保存配置
2、开启board.h及stm32xxxx_hal_config.h的宏定义
这里只需要先开启宏,函数复制看下面的步骤。


3、复制PWM初始化函数
初始化相关的函数有两种获取方式,第一种可以使用stm32cube配置工程,然后打开工程的stm32f1xx_hal_msp.c和main.c进行复制;第二种可以打开RTThread源代码的板级支持包BSP进行复制,BSP中包含很多芯片的例程代码,但代码中是没有初始化全部的外设的,所以最好还是采用第一种方法。
需要复制的函数有:
1、void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim);//在stm32f1xx_hal_msp.c中,放在board.c最下面,也可自己分配位置
2、void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm);//在stm32f1xx_hal_msp.c中,放在board.c最下面,也可自己分配位置
3、static void MX_TIM2_Init(void);//main.c中,位置自己配置吧
第1、2个函数会被系统检索自动初始化,第3个函数需要用户主动初始化,放在mian函数中自己初始化吧,其中的有些内容会与后面初始化内容重复,但最终还是会以程序最后的配置为准,不影响使用。
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
{
if(htim_pwm->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspInit 0 */
/* USER CODE END TIM2_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM2_CLK_ENABLE();
/* USER CODE BEGIN TIM2_MspInit 1 */
/* USER CODE END TIM2_MspInit 1 */
}
}
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
{
GPIO_InitTypeDef GPIO_InitStruct;
if(htim->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspPostInit 0 */
/* USER CODE END TIM2_MspPostInit 0 */
/**TIM2 GPIO Configuration
PA0-WKUP ------> TIM2_CH1
PA1 ------> TIM2_CH2
PA2 ------> TIM2_CH3
PA3 ------> TIM2_CH4
*/
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.

本文详细介绍了在RT-Thread操作系统下配置STM32微控制器PWM功能的步骤,包括宏定义启用、PWM初始化函数复制及最终PWM代码配置。通过HAL库函数实现TIM2定时器的PWM输出,适用于嵌入式系统的PWM信号生成。
最低0.47元/天 解锁文章
443





