注:pwm驅(qū)動接口函數(shù)不能跟hw_timer.c的接口同時使用,因為二者共用了同一個硬件定時器
1.pwm_init
功能:初始化pwm,包括GPIO選擇,周期和占空比。目前僅支持調(diào)用一次
函數(shù)定義:
void pwm_init(
uint32 period,
uint8 *duty,
uint32 pwm_channelnum,
uint32 (*pin_info_list)[3]
)
參數(shù):
uint32 period :pwm 周期;
uint *duty :各路pwm的占空比
uint32 pwm_channel_num: pwm 通道數(shù)
uint32 (*pin_info_list)[3] pwm 各通道的GPIO硬件參數(shù)。本參數(shù)是一個n*3的數(shù)組指針,
數(shù)組中定義了GPIO的寄存器,對應(yīng)PIN腳的IO復(fù)用值和GPIO對應(yīng)的序號
返回:
無
2.pwm_start
功能:
pwm 開始。每次更新pwm設(shè)置后,都需要重新調(diào)用本接口進(jìn)行計算。
函數(shù)定義:
void pwm_start(void)
參數(shù):
無
返回:
無
3.pwm_set_duty
功能:
設(shè)置pwm某個通道信號的占空比。設(shè)置各路pwm信號高電平所占的時間,duty的范圍隨pwm
周期改變,最大值:period * 1000 / 45 。例如,1kHz PWM, duty范圍0~22222
注意:
設(shè)置完成后,需要調(diào)用pwm_start生效。
函數(shù)定義:
4.void pwm_set_duty(uint32 duty, uint8 channel)
參數(shù):
uint32 duty: 設(shè)置高電平時間參數(shù),占空比的值為(duty * 45) / (period * 1000)
函數(shù)定義:
uint8 pwm_get_duty(uint8 channel)
參數(shù):
uint8 channel :當(dāng)前要查詢的pwm通道,取值范圍依據(jù)實際使用了幾路pwm,在IOT_Demo中取值在#define PWM_CHANNEL
返回:
對應(yīng)某路pwm信號duty參數(shù)
5.pwm_set_period
功能:設(shè)置pwm周期,單位us。例如,1kHz pwm,參數(shù)為1000us。
注意:設(shè)置完成后,需要調(diào)用pwm_start生效
函數(shù)定義:
void pwm_set_period(uint32 period)
參數(shù):
uint32 period:pwm周期,單位:us
返回:
無
6.pwm_get_period
功能:
查詢pwm周期
函數(shù)定義:
uint32 pwm_get_period(void)
返回:
pwm周期,單位:us
7.get_pwm_version
功能:
查詢pwm版本信息
函數(shù)定義:
uint32 get_pwm_version(void)
參數(shù):
無
返回:
pwm版本信息