- 什么是GPIO?
GPIO就是通用输入输出的简写,我刚转载了一篇关于GPIO的文章,写的非常的详细,要详细的了解GPIO,可以在哪里获得信息
- 关于linux系统中设备的操作?
在linux系统中,所有的设备都是当成文件来操作的,凡是按照POSIX标准来设计的设备文件都可以通过POSIX文件操作来完成输入输出或者数据交换等操作,但前提是要有驱动的支持,当然内核裁剪的时候也不应有问题。POSIX标准在linux、unix系统中作为一个强制的标准执行,所以不要担心你的linux系统不能使用这些函数。
- 和GPIO操作相关的函数:
头文件:
#include <fcntl.h>
#include #include <asm/hardware.h> //硬件相关,非linux系统库文件 #include <asm-arm/arch-s3c2410/gpio.h> //硬件相关 非linux系统库文件
|
打开GPIO设备文件:
int open(const char *path,int oflag);
const char *path : 存储文件的路径的字符串的指针,
oflag:文件打开的方式,
O_RDONLY 只读 O_WRONLY 只写 O_RDWR 读写 O_CREAT 如果文件不存在则创建新文件,需要文件权限mode参数 O_EXCL 独占方式 O_NOCTTY 禁止取得终端控制 O_TUUNC 清除文件原来内容 O_APEND 追加方式 O_NONBLOCK 采用非阻塞文件打开方式
|
读设备文件:
ssize_t read(int fd,void *buffer,size_t count);
fd:文件描述符 buffer :数据缓冲区指针 count:读取的数目,读取成功返回读取的字节数,失败返回-1
写设备文件:
ssize_t write(int fd,void &buffer,size_t count); 同上。
关闭文件: int close(int fd);
IO读取控制函数:
int ioctl(int fd,unsigned long int cmd,...);
操作成功返回0 ,失败返回-1 。
GPIO设备支持的ioctl方法:
GPIO_SET_PIN //参数n 设置第n个引脚输出高电平 GPIO_SET_ALL_PIN //无参数 设置所有引脚输出高电平 GPIO_CLR_PIN //参数n 设置第n个引脚输出低电平 GPIO_CLR_ALL_PIN //无参数 设置所有引脚输出低电平 GPIO_SET_PIN_OUT //参数n 设置第n个引脚为输出口 GPIO_SET_PIN_IN //参数n 设置第n个引脚为输入口 GPIO_SET_MULTI_PIN_IN //参数n 设置n中为1的位为输入口 GPIO_SET_MULTI_PIN_OUT //参数n 设置n中为1的位为输出口
|
阅读(1485) | 评论(3) | 转发(0) |