Linux - PWM的驅動編寫【轉】


本文轉載自:https://blog.csdn.net/u012264124/article/details/77482853

比如要用到pwm1,那么首先要保證這個pwm1並沒有被別的驅動程序占用。
比如在驅動的設備樹里面:

backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 25000>;
……
}
1
2
3
4
5
可以看到里面把pwm1已經占用掉了,那么除了可以把相應的驅動程序設置為不編譯以外,也可以直接把這個設備樹里面的標識屏蔽掉,那么在加載驅動時在設備樹里面沒有找到對應的compatible,也不執行對應的具體內容。

Pwm的驅動程序:
涉及頭文件:

#include <linux/pwm.h>
struct pwm_device * pwm1 = NULL; //初始化一個pwm設備的結構體變量
pwm1 = pwm_request(1, "pwm1");//申請pwm設備函數,前面是pwm幾,后面是給他的簡稱
if(IS_ERR(pwm1))//申請有無成功
    printk("pwm1 err %ld\n", PTR_ERR(pwm1));
else
    printk("pwm1 success\n");

pwm_config(pwm1, 1200000, 5000000);//下面講
pwm_enable(pwm1);//將pwm使能,打開
1
2
3
4
5
6
7
8
9
10
Pwm_config函數有三個參數,第一個是當前設置的pwm設備,第二個和第三個分別是占空比與周期。
占空比與周期的單位均是ns,
其中5000000ns即表示5ms,說明一個波形的周期是5ms
其中1200000ns即表示1.2ms,說明一個波形中電平值為高時持續時間為1.2ms


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM