天天看點

linux控制Gpio時間,ARM-Linux GPIO操作事宜

1.在嵌入式Linux GPIO表示為“S3C2410_GPx(n)”,其中x的取值為“A,B,C,D,E,F,G,H.....”,表示那個GPIO口,n的取值為“1,2,3,.....”表示第幾個管腳。

例如本文引用位址:http://www.eepw.com.cn/article/201611/316727.htm

B口的第六管教:S3C2410_GPB(6)

D口的第12管教:S3C2410_GPD(12)

.....

注 這些宏定義在arch/arm/mach-s3c2410/include/mach/gpio-nrs.h,使用#include

以下包含#include

2.設定gpio的工作模式是輸入,輸出還是其他的

voids3c2410_gpio_cfgpin(unsigned int pin, unsigned int function)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

參數 function 表示該管腳配置的功能 一般隻能配置下列參數

S3C2410_GPIO_INPUT:該管腳配置為輸入

S3C2410_GPIO_OUTPUT:該管腳配置為輸出

S3C2410_GPIO_SFN1

S3C2410_GPIO_SFN2

S3C2410_GPIO_LEAVE

3.傳回對應的GPIO的配置情況是輸入,輸出還是其他的

unsignedint s3c2410_gpio_getcfg(unsigned int pin)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

傳回值

S3C2410_GPIO_INPUT:該管腳配置為輸入

S3C2410_GPIO_OUTPUT:該管腳配置為輸出

....

4.設定相應的GPIO的上拉電阻

voids3c2410_gpio_pullup(unsigned int pin, unsigned int to)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

參數 to 當to為1時候,相應的pin引腳設定為1,表示該GPIO要上拉電阻,to為0時候,相應的pin引腳配置為0,表示不要上拉電阻

5.ints3c2410_gpio_getpull(unsigned int pin)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

傳回值 為1時候,表示該GPIO有上拉電阻;為0時候,表示沒有上拉電阻

6.當GPIO的工作為輸出時候,設定某個GPIO的值

voids3c2410_gpio_setpin(unsigned int pin, unsigned int to)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

參數 to 當to為1時候,相應的pin引腳設定為高電平,to為0時候,相應的pin引腳配置為低電平

7.當GPIO的工作為輸入時候,設定某個GPIO的值

unsigned ints3c2410_gpio_getpin(unsigned int pin)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

傳回值 為1時候,表示該GPIO輸入高電平;為0時候,表示輸入低電平

8.給定端口,轉換出irq号

ints3c2410_gpio_getirq(unsigned int pin)

參數 pin 表示配置的管腳 形如“S3C2410_GPB(6)”的實參

傳回值 irq

9.雜項配置

unsigned ints3c2410_modify_misccr(unsigned int clear, unsigned int change)