linux kernel操作PWM函式
阿新 • • 發佈:2021-01-12
一、標頭檔案
#include <linux/pwm.h>
二、註冊PWM
struct pwm_device *pwm_request(int pwm_id, const char *label)
功能:申請一個PWM資源
引數:pwm_id:pwm編號;label:名稱
返回值:成功返回pwm裝置資源;失敗返回錯誤資訊,使用IS_ERR()判斷
三、配置PWM
int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns)
功能:配置pwm
引數:pwm:申請到的pwm裝置;duty_ns:pwm佔空比時間,單位為ns;period_ns:pwm週期時間,單位為ns
返回值:成功返回0,失敗返回錯誤碼
四、使能PWM
int pwm_enable(struct pwm_device *pwm)
功能:使能pwm
引數:pwm:申請到的pwm裝置
返回值:成功返回0,失敗返回錯誤碼
五、停止PWM
void pwm_disable(struct pwm_device *pwm)
功能:停止pwm
引數:pwm:申請到的pwm裝置
六、設定PWM週期
void pwm_set_period(struct pwm_device *pwm, unsigned int period)
功能:設定PWM週期
引數:pwm:申請到的pwm裝置;period:pwm週期時間,單位為ns
七、獲取PWM週期
int pwm_get_period(const struct pwm_device *pwm)
功能:獲取PWM週期
引數:pwm:申請到的pwm裝置
返回值:pwm週期時間,單位為ns
八、設定PWM有效極性
int pwm_set_polarity(struct pwm_device *pwm, enum pwm_polarity polarity)
功能:設定PWM有效極性
引數:pwm:申請到的pwm裝置;polarity:pwm有效極性 PWM_POLARITY_NORMAL / PWM_POLARITY_INVERSED
返回值:成功返回0,失敗返回錯誤碼
九、獲取PWM有效極性
enum pwm_polarity pwm_get_polarity(const struct pwm_device *pwm)
功能:獲取PWM有效極性
引數:pwm:申請到的pwm裝置
返回值:pwm有效極性 PWM_POLARITY_NORMAL / PWM_POLARITY_INVERSED
十、釋放PWM
void pwm_free(struct pwm_device *pwm)
功能:釋放pwm資源
引數:pwm:申請到的pwm裝置