现在的位置: 首页 > 综合 > 正文

LPC2200芯片的GPIO命令

2019年11月22日 ⁄ 综合 ⁄ 共 1250字 ⁄ 字号 评论关闭

最近在学习嵌入式驱动程序的编写范例的时候,使用的是LPC2200 看的一些重要的内容。

 

命令      功能

GPIO_SET_PIN   指定的IO口输出高电平

GPIO_SET_ALL_PIN  IO的任意子集输出高电平

GPIO_CLEAN_PIN     指定的IO口输出低电平

GPIO_CLEAN_ALL_PIN   IO的任意子集输出低电平

GPIO_SET_PIN_OUT    IO为输出状态

GPIO_SET_PIN_IN       IO为输入状态

GPIO_SET_MULTI_PIN_OUT   任意子集输出状态

GPIO_SET_MULTI_PIN_IN       任意子集出入状态

GPIO_READ_PORT      读指定的IO口输出电平

GPIO_READ_ALL_PORT   读本端口所有的IO输出电平

GPIO_READ_PIN       读指定IO口上引脚的电平

GPIO_READ_ALL_PIN   读本端口所有IO上引脚的电平

 

 

使用范例:

GPIO_SET_PIN_OUT 

{

int fd;

..............

fd=open("/dev/P0",0_RDONLY);

..............

ioctl(fd,GPIO_SET_PIN_OUT,14);

.............

}

使用ioctl配置引脚14为输出状态

 

例子2

{

int fd;

..............

fd=open("/dev/P0",0_RDONLY);

..............

ioctl(fd,GPIO_SET_MULTI_PIN_OUT,(1<<14)|(1<<25));

............

}

配置14脚和25脚为输出电平

 

 

例子3

{

int fd;

..............

fd=open("/dev/P0",0_RDONLY);

..............

ioctl(fd,GPIO_SET_PIN_IN,14);

.............

}  配置14引脚为输入

 

 

 

以上的这些例子是配置命令 读取端口电平的命令需要例外写,他们略有不同

 

GPIO_READ_PORT  

{

int  fd;

u32 pin;

...........

fd=open("/dev/P0",0_RDONLY);

..........

pin=14;

ioctl(fd,GPIO_READ_PORT,&pin);

}

 

GPIO_READ_ALL_PORT    这是读取P0口的电平

{

int fd;

u32 pin;

...........

fd=open("/dev/P0",0_RDONLY)

..........

ioctl(fd,GPIO_READ_PORT,&pin);

}

 

 

 

 

GPIO_READ_PIN

{

int fd;

u32 pin;

..........

fd=open("/dev/P0",0_RDONLY);

..........

ioctl(fd,GPIO_READ_pin,&pin);

}

 

以上的大约10个函数都是由专门的寄存器配置的。再由ioctl配置

抱歉!评论已关闭.