Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1652012
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: LINUX

2009-03-30 19:57:39

  1. 什么是GPIO?
    GPIO就是通用输入输出的简写,我刚转载了一篇关于GPIO的文章,写的非常的详细,要详细的了解GPIO,可以在哪里获得信息
  2. 关于linux系统中设备的操作?
    在linux系统中,所有的设备都是当成文件来操作的,凡是按照POSIX标准来设计的设备文件都可以通过POSIX文件操作来完成输入输出或者数据交换等操作,但前提是要有驱动的支持,当然内核裁剪的时候也不应有问题。POSIX标准在linux、unix系统中作为一个强制的标准执行,所以不要担心你的linux系统不能使用这些函数。
  3. 和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的位为输出口

阅读(1505) | 评论(3) | 转发(0) |
0

上一篇:GPIO解析

下一篇:BMP图片格式

给主人留下些什么吧!~~

koiko2009-08-17 19:19:18

很好很好·····

tastesweet2009-04-02 14:06:51

转载的少,但都是精华,自己理解的,写出来,自己学到的写出来,好脑子不如烂笔头,不算转载了。

chinaunix网友2009-04-02 14:03:18

学习你转载的速度