在4418平臺上如何配置GPIO口的狀態
阿新 • • 發佈:2017-06-18
按鍵驅動 out ont 第一個 u-boot 微軟 evel gif http
硬件
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通過原理圖找你需要配置的硬件IO口的管腳
在 4418 6818 內核中,所有 GPIO 引腳被分為 ABCDE 等幾組,每組 32 個。 每組引腳起始地址定義如下圖: 硬件引腳都對應分配在這幾組引腳中: 例如: GPIOB29 對應 硬件上的命名: GPIOB29 軟件上的命名: PAD_GPIO_B + 29 GPIOC10 對應 PAD_GPIO_C + 10 硬件上的命名: GPIOC10 軟件上的命名: PAD_GPIO_C + 10 軟件 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GPIO配置文件 u-boot\boart\s5p4418\drone\include\Cfg_gpio.h kernel\arch\arm\plat-s5p4418\drone\include\Cfg_gpio.h 在 如果要對 GPIO 配置為輸出功能,輸出高或輸出低,就是拉高拉低的意思。 我們可以用 int gpio_direction_output(unsigned gpio, int value) 從函數的參數來看 unsigned gpio:這個單個 GPIO 的值 ; int value:這個是要設置的值( 0 代表低電平, 1 代表高電平) 比如我要對 LCD 供電的 GPIO 拉高,那麽軟件上這樣寫 gpio_direction_output(PAD_GPIO_C + 10, 1); 如果要拉低: gpio_direction_output(PAD_GPIO_C + 10, 0); 我們在 LCD 驅動、觸摸屏驅動、按鍵驅動等都有對 GPIO 設置,請參考源碼對應的修改進行理解。 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GPIO 輸入功能設置 如果我們想了解一個外部的電平的高低情況,那麽我們可以通過 GPIO 連接該路電平,接著把 GPIO 設成輸入功能即可。 軟件上用一個函數即可讓 GPIO 變成輸入功能 int gpio_direction_input(unsigned gpio) 從這上面我們只看到一個參數,就是對應 GPIO 的值 比如我要讓 GPIOC10 改成輸入功能 gpio_direction_input( PAD_GPIO_C + 10); -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GPIO 電平讀取 當我們需要讀取當前 GPIO 的值(輸出、輸入、復用功能都可以讀取),我們也可以通過函 數去讀取 static inline int gpio_get_value(unsigned gpio) 參數 GPIO 代表需要讀取 GPIO 對應的值 比如我要讀 GPIOC10 的值 gpio_get_value(PAD_GPIO_C + 10) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- GPIO 中斷功能設置 當我們需要引腳中斷功能的時候,那麽我們就需要實現 GPIO 的中斷功能。 參數: void nxp_soc_gpio_set_int_enable(unsigned int io, int on) unsigned io :代表單個 GPIO 引腳 int on:置為 1,則代表使能中斷功能,置為 0,則說明不使能中斷功能,即不作為中斷引腳。 |
在4418平臺上如何配置GPIO口的狀態