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设备