1. 程式人生 > 實用技巧 >linux kernel操作PWM函式

linux kernel操作PWM函式

一、標頭檔案

#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裝置