linux核心 GPIO口程式設計入門

2021-07-10 21:57:05 字數 1027 閱讀 9144

1. api介面

請求gpio口

int gpio_request(unsigned gpio, const char *label)

釋放gpio口

void gpio_free(unsigned gpio)

判斷gpio索引號是否有效(gpio口是否存在)

int gpio_is_valid(int number);

設定輸出:

int gpio_direction_output(unsigned gpio, int value)

設定輸入:

int gpio_direction_input(unsigned gpio)

將gpio口轉換成對應的中斷號

int gpio_to_irq(unsigned gpio);

中斷請求

request_irq

2. **路徑:

2.1 drivers/gpio/gpiolib.c

3. 除錯gpio口

執行:echo 100 > /sys/class/gpio/export

在/sys/class/gpio目錄下會生成子目錄:gpio100,該目錄有以下這些檔案:

active_low

direction

power

subsystem

uevent

value

cd /sys/class/gpio/gpio100

gpio口設定成輸出:

echo out > direction

輸出高電平:

echo 1 > value

輸出低電平:

echo 0 > value

另外,有個lua核心的移植專案,也已經包含了gpio口的讀寫功能,**路徑如下:

使用方法見**根目錄下的howto.txt

另外,通過cat /sys/kernel/debug/gpio 可以檢視gpio口的資訊。

4. 參考文件:

linux/documentation/gpio.txt

linux核心GPIO程式設計說明

核心gpio程式設計說明 參考資料 從官方資料來看,linux核心中的gpio介面目前有新舊兩個版本,新的版本的介面是descriptor based的,而舊的是integer based的。舊的介面已出於相容性的考慮仍被支援,但已不再建議使用。網上目前大多gpio程式設計說明都是舊的版本,所以這篇...

gpio口 核心定時器使用

申請gpio int gpio request unsigned gpio,const char label 設定gpio為輸入狀態,即設定如 gph0con int gpio direction input unsigned gpio 設定gpio為輸出狀態,即設定如 gph0con int gp...

linux網口初始化 Linux網路程式設計入門

根據前面所介紹的內容,本節介紹下網路位址初始化的方法。網路位址初始化本質上就是對sockaddr in結構體進行賦值 include include memset include sockaddr in int main int argc,char ar const char server ip 1...