如何使用PWM驱动
PWM驱动的使用方法如下:
- 声明一个pwm_handle_t句柄结构体变量,例如:pwm_handle_t pwm_handle。
- 重写hal_pwm_msp_init()以初始化PWM底层资源:使用hal_gpio_int()配置PWM各通道对应GPIO引脚模式为GPIO_PIN_MUX(复用模式),并设置对应的mux模式。
- 配置pwm_handle中init初始化结构体中的输出模式、对齐方式、输出频率、输出通道,若普通占空比输出模式还需配置通道占空比和输出极性;若输出模式为呼吸模式,则还需配置Breath周期和Hold周期。
- 调用hal_pwm_init(&pwm_handle)配置PWM寄存器,配置过程中hal_pwm_init()会自动调用开发者重写的hal_pwm_msp_init()函数初始化PWM所使用的GPIO引脚等底层资源。
- 声明一个pwm_channel_init_t通道初始化结构体,例如:pwm_channel_init_t channel_init。
- 根据输出模式对channel_init中的通道占空比及输出极性进行配置:
- 固定占空比模式:配置通道占空比及输出极性。
- 呼吸模式:仅需配置输出极性。
- 调用hal_pwm_config_channel(&pwm_handle,&channel_init,HAL_PWM_ACTIVE_CHANNEL_x)配置输出通道HAL_PWM_ACTIVE_CHANNEL_x,其中x可以是A或B或C或ALL。
- 调用hal_pwm_start()使能PWM输出。
- 调用hal_pwm_stop()暂停PWM输出,此时开发者还可调用hal_pwm_config_channel()修改输出通道配置。