嵌入式Linux GPIO 操作

2019-07-12 20:10发布

1.在嵌入式Linux GPIO表示为“S3C2410_GPx(n)”,其中x的取值为“A,B,C,D,E,F,G,H.....”,表示那个GPIO口,n的取值为“1,2,3,.....”表示第几个管脚。 例如 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)
        GPIO(GeneralPurpose Input/Output的缩写)就是芯片的引脚,引脚是可编程的可对引脚的工作模式进行设置:输入模式(检测输入信号),输出模式(输出0或1),高阻状态(常用于AD转换),还有禁止或允许上内部下拉电阻(上拉:管脚通过电阻接高电平,下拉:管脚通过电阻接地,也可以外部接上拉或下拉电阻),还有管脚复用等功能,即通过对内部寄存器的设置使引脚既可以工作在一般模式,作为普通的GPIO口使用,也可以工作在特殊模式,比如作为外部中断信号输入引脚等等。如果不设置GPIO引脚,CPU工作时有一个初始化模式,可以从datasheet(芯片手册)上了解。对GPIO的控制是编写驱动程序最常见和重要的一项工作内容。在Linux内核代码中,已经提供了针对三星S3C2410/S3C2440等芯片GPIO的控制。