注:pwm驅(qū)動(dòng)接口函數(shù)不能跟hw_timer.c的接口同時(shí)使用,因?yàn)槎吖灿昧送粋€(gè)硬件定時(shí)器
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ù)是一個(gè)n*3的數(shù)組指針,
數(shù)組中定義了GPIO的寄存器,對(duì)應(yīng)PIN腳的IO復(fù)用值和GPIO對(duì)應(yīng)的序號(hào)
返回:
無(wú)
2.pwm_start
功能:
pwm 開始。每次更新pwm設(shè)置后,都需要重新調(diào)用本接口進(jìn)行計(jì)算。
函數(shù)定義:
void pwm_start(void)
參數(shù):
無(wú)
返回:
無(wú)
3.pwm_set_duty
功能:
設(shè)置pwm某個(gè)通道信號(hào)的占空比。設(shè)置各路pwm信號(hào)高電平所占的時(shí)間,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í)間參數(shù),占空比的值為(duty * 45) / (period * 1000)
函數(shù)定義:
uint8 pwm_get_duty(uint8 channel)
參數(shù):
uint8 channel :當(dāng)前要查詢的pwm通道,取值范圍依據(jù)實(shí)際使用了幾路pwm,在IOT_Demo中取值在#define PWM_CHANNEL
返回:
對(duì)應(yīng)某路pwm信號(hào)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
返回:
無(wú)
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ù):
無(wú)
返回:
pwm版本信息