linux驅動開發 GPIO配置與使用

2021-08-25 02:52:38 字數 1042 閱讀 4468

gpio驅動是linux驅動開發中最基礎、但卻是很常用、很重要的驅動。比如你要點亮乙個led燈、鍵盤掃瞄、輸出高低電平等等。而linux核心的強大之處在於對最底層的gpio硬體操作層的基礎上封裝了一些統一的gpio操作介面,也就是所謂的gpio驅動框架。這樣開發人員可以呼叫這些介面去操作裝置的io口,不需要擔心硬體平台的不同導致io口的不同。

1.查詢gpio管腳是否被占用

#define module_msr_strobe     gpio9
if (!gpio_is_valid(module_msr_strobe))
其中int gpio_is_valid(int number) 測試gpio埠是否合法 

2.申請gpio

result = gpio_request(module_msr_strobe, null);
3.配置gpio使用方向

int gpio_direction_input(unsigned gpio); 

int gpio_direction_output(unsigned gpio,int value);

4.配置gpio輸出狀態和獲得輸入值狀態

int gpio_set_value(unsigned gpio, int value);

int gpio_get_value(unsigned gpio);

5.gpio配置中斷使用

int gpio_to_irq(unsigned gpio);
返回的值即中斷編號可以傳給request_irq()和free_irq()

核心通過呼叫該函式將gpio埠轉換為中斷,在使用者空間也有類似方

linux驅動開發 GPIO配置與使用

gpio驅動是linux驅動開發中最基礎 但卻是很常用 很重要的驅動。比如你要點亮乙個led燈 鍵盤掃瞄 輸出高低電平等等。而linux核心的強大之處在於對最底層的gpio硬體操作層的基礎上封裝了一些統一的gpio操作介面,也就是所謂的gpio驅動框架。這樣開發人員可以呼叫這些介面去操作裝置的io口...

Linux裝置驅動之《玩轉GPIO》

在linux裝置驅動之 點亮一盞led 中,編寫了ioctl c.h這樣的標頭檔案,在本文中將繼續使用這一頭檔案,如下 然後則是驅動模組程式,如下所示 這裡只說明與前面模組程式的區別,首先是ioctl test函式 static int ioctl test struct inode inode,s...

Linux核心驅動GPIO的使用

linux核心中gpio 是最簡單 最常用的資源 和 interrupt dma,timer一樣 驅動程式,應用程式都能夠通過相應的介面使用gpio,gpio使用0 max int之間的整數標識,不能使用負數,gpio與 硬體體系密切相關的 不過linux 有乙個框架 處理gpio 能夠使用統一的介...