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

當前位置:首頁 > 嵌入式培訓 > 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號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 日本国产高清不卡| 亚洲欧美www| 5252色成人免费视频| 欧美多人爱爱视频网站| 欧美激情手机在线视频| 欧美高清视频免费观看| 68精品国产免费久久久久久婷婷| 91精品国产高清| 国产精品久久久亚洲| 91欧美视频网站| 亚洲精品电影在线| 一区二区三区黄色| 欧美另类第一页| 欧美精品激情在线观看| 国产91精品在线播放| 91久久国产精品| 在线播放日韩欧美| 精品日韩视频在线观看| 97色在线视频| 成人欧美一区二区三区黑人| 亚洲精品美女在线| 久久九九有精品国产23| 18一19gay欧美视频网站| 成人福利在线观看| 在线观看欧美成人| 欧美日韩中文字幕在线视频| 热re91久久精品国99热蜜臀| 亚洲第一视频网| 欧美日韩福利视频| 国产精品三级美女白浆呻吟| 国产丝袜一区二区| 精品日韩中文字幕| 国产精品综合网站| 色吧影院999| 欧洲成人在线观看| 亚洲美女激情视频| 欧美国产日产韩国视频| 亚洲第一视频网| 精品成人国产在线观看男人呻吟| 国产成人欧美在线观看| 国产一区二区三区在线观看视频|