色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > Linux學習 > linux入門 > 嵌入式linux下GPIO驅動程序操作方法(還有實例)

嵌入式linux下GPIO驅動程序操作方法(還有實例) 時間:2018-08-10      來源:未知

嵌入式linux下GPIO驅動程序,這是在嵌入式設備中最基本的操作,也是菜鳥進階必經之路,,今天我們就用各個實例來讓你深刻的了解GPIO驅動程序,這都是我自己親手做過的,可以慢慢來理解。

首先我們在看驅動程序的代碼之前,先要知道庫函數:

內核GPIO庫函數:

int gpio_request(unsigned gpio,const char *label)//申請GPIO資源

參數gpio表示GPIO所對應的編號,由于在平臺代碼中,已經將CPU所有的GPIO進行統一的規劃和編號

參數*label表示標簽

因為gpio在內核中,就和內存一樣,所以你需要的就是申請

當返回的值小于0的話,那么就表示失敗,如果大于0那就表示功能

gpio_direction_output(unsigned gpio,int value)//配置GPIO為輸出口,并輸出value(0,1)

gpio_direction_input(unsigned gpio)//配置為輸入口

gpio_set_value(unsigned gpio,int value);

//將GPIO寄存器設置為0或1,該函數并不設置GPIO為輸出,只是把相應的寄存器設置為0

gpio_get_value(unsigned gpio);//同理,設置為輸入

gpio_free(unsigned gpio);//釋放GPIO資源

以上函數返回值表示GPIO的狀態

上面這些就是GPIO驅動程序的基本概念理解,你必須要了解,才能進行接下來的操作,接下來就是GPIO驅動程序的操作,我們就來通過一個蜂鳴器的例子,來讓你對GPIO驅動程序的操作有深刻理解,蜂鳴器的例子是這樣的:要求驅動加載的時候,打開蜂鳴器,卸載驅動時,關閉蜂鳴器,下面就來解答。

#include

#include

#include

#include

#define LED_ON 1//宏定義一下,為了美觀

#define LED_OFF 0

//定義硬件GPIO結構體

struct led_resource{

unsigned long gpio;//gpio的編號,每個GPIO都有一個內核分配的唯一編號

char *name; //gpio的標簽

};

static struct led_resource led_info[]={

[0] = {

.gpio = S5PV210_GPD0(0),//管腳信息

.name = "GPC0_0"//管腳名稱

},

};

static void led_control(unsigned long gpio,int flags)

{

gpio_direction_output(gpio,0);//這句表示先把當前GPIO口設置為輸出口,并且輸出0

gpio_set_value(gpio,flags);//然后在輸出想要設置的電平,前面先設置0是為了防止干擾

}

static int led_init(void)

{

gpio_request(led_inf0[0].gpio,led_inf[0].name);//申請GPIO資源

led_control(led_inf0[i].gpio,LED_ON);//調用函數來設置輸出口為1

return 0;

}

static void led_exit(void)

{

led_control(led_inf0[0].gpio,LED_OFF);//調用函數輸出0關閉蜂鳴器

gpio_free(led_inf0[0].gpio);//釋放GPIO資源

}

module_init(led_init);//注冊入口函數

module_exit(led_exit);//注冊出口函數

MODULE_LICENSE("GPL V2");//聲明該程序符合國際GPL委員會制定的標準

切記:在加載的時候,內核會有調用入口函數,他就會執行入口函數的命令,燈就會亮,蜂鳴器就會叫,一但卸載驅動程序的時候,內核就會自動調用出口函數,當然也會執行出口函數的內容。寫好程序后,把代碼寫成.C文件然后放在linux內核源代碼字符設備驅動所在的文件夾下,然后用當前目錄的makefile編譯一下,然后把編譯好的驅動程序通過tftp或其他方式傳到開發板的文件系統的任意一個文件夾。然后用命令加載這個驅動程序或者卸載

這樣你就看到現象了,是不是不是那么難,不管是什么樣的例子,你只要掌握GPIO驅動程序操作方法,那你就都可以迎刃而解了,想要了解更多GPIO驅動程序操作方法,你可以參考Linux內核驅動之gpio子系統的使用

上一篇:嵌入式linux項目實例,嵌入式學霸總結

下一篇:Linux查看進程命令有哪些

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 欧美男插女视频| 国产在线观看一区二区三区| 欧美日韩一区二区免费视频| 懂色aⅴ精品一区二区三区蜜月| 欧美电影免费在线观看| 久久久久久噜噜噜久久久精品| 欧美激情亚洲另类| 国产成人精品免费视频| 国产精品一区二区三区毛片淫片 | 国产欧美一区二区| 亚洲va欧美va国产综合久久| 亚洲国内精品在线| 最近更新的2019中文字幕 | 亚洲人成伊人成综合网久久久| 最新亚洲国产精品| 色综合久久88色综合天天看泰| 欧美综合在线第二页| 91中文字幕在线| 日韩在线www| 欧美野外wwwxxx| 91中文字幕在线| 久久视频免费在线播放| 欧美野外wwwxxx| 亚洲精品久久久久中文字幕欢迎你| 中日韩美女免费视频网址在线观看| 狠狠躁夜夜躁人人爽超碰91| 热久久这里只有精品| 日韩精品在线免费观看| 欧美日本在线视频中文字字幕| 国产不卡在线观看| 亚洲性视频网站| 91国内在线视频| 日韩av有码在线| 日韩欧美精品网址| 亚洲综合在线播放| 精品国产电影一区| 成人午夜小视频| 欧美日韩成人在线播放| 成人xxxx视频| 欧美午夜视频一区二区| 亚洲wwwav|