注:pwm驱动接口函数不能跟hw_timer.c的接口同时使用,因为二者共用了同一个硬件定时器
1.pwm_init
功能:初始化pwm,包括GPIO选择,周期和占空比。目前仅支持调用一次
函数定义:
void pwm_init(
uint32 period,
uint8 *duty,
uint32 pwm_channelnum,
uint32 (*pin_info_list)[3]
)
参数:
uint32 period :pwm 周期;
uint *duty :各路pwm的占空比
uint32 pwm_channel_num: pwm 通道数
uint32 (*pin_info_list)[3] pwm 各通道的GPIO硬件参数。本参数是一个n*3的数组指针,
数组中定义了GPIO的寄存器,对应PIN脚的IO复用值和GPIO对应的序号
返回:
无
2.pwm_start
功能:
pwm 开始。每次更新pwm设置后,都需要重新调用本接口进行计算。
函数定义:
void pwm_start(void)
参数:
无
返回:
无
3.pwm_set_duty
功能:
设置pwm某个通道信号的占空比。设置各路pwm信号高电平所占的时间,duty的范围随pwm
周期改变,最大值:period * 1000 / 45 。例如,1kHz PWM, duty范围0~22222
注意:
设置完成后,需要调用pwm_start生效。
函数定义:
4.void pwm_set_duty(uint32 duty, uint8 channel)
参数:
uint32 duty: 设置高电平时间参数,占空比的值为(duty * 45) / (period * 1000)
函数定义:
uint8 pwm_get_duty(uint8 channel)
参数:
uint8 channel :当前要查询的pwm通道,取值范围依据实际使用了几路pwm,在IOT_Demo中取值在#define PWM_CHANNEL
返回:
对应某路pwm信号duty参数
5.pwm_set_period
功能:设置pwm周期,单位us。例如,1kHz pwm,参数为1000us。
注意:设置完成后,需要调用pwm_start生效
函数定义:
void pwm_set_period(uint32 period)
参数:
uint32 period:pwm周期,单位:us
返回:
无
6.pwm_get_period
功能:
查询pwm周期
函数定义:
uint32 pwm_get_period(void)
返回:
pwm周期,单位:us
7.get_pwm_version
功能:
查询pwm版本信息
函数定义:
uint32 get_pwm_version(void)
参数:
无
返回:
pwm版本信息