实验七 LED灯控制实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验七LED灯控制实验

一、实验目的

1、掌握通过文件系统操作I/O设备的方法;

2、学会使用S5PV210 的GPIO设备实现简单的功能。

二、实验设备

1)装有Ubuntu系统或装有Ubuntu虚拟机的PC 机一台;

2)A8嵌入式实验箱一台;

3)本实验用到的实验箱模块有:S5PV210 CPU板模块,LED 模块

三、实验要求

循环让led1-led4点亮

四、实验原理

在Linux 系统中,所有设备都是以文件的形式被打开并进行读/写操作的,本实验中使用POSIX容的文件操作接口函数对底层设备进行操作。POSIX是Portable Operating System Interface foIX的首字母缩写词,是一套IEEE 和ISO标准。这个标准定义了应用程序和操作系统之间的一个口。只要保证他们的程序设计的符合POSIX 标准,开发人员就能确信他们的程序可以和支持SIX 的操作系统互联。这样的操作系统包括大部分版本的UNIX。POSIX 标准现在由IEEE 的一分支机构Portable Applications Standards Committee(PASC)维护。

本实验需要用到以下几个文件操作函数:

【函数原型】int open(const char *pathname, int oflag);

int open(const char *pathname, int oflag, mode_t mode);

【功能】打开名为path 的文件或设备,成功打开后返回文件句柄。

【参数】pathname : 文件路径或设备名

oflag : 打开方式。可选值可以是表1.1中的一个值或几个值的组合

【返回值】成功打开后返回文件句柄,失败返回-1

【头文件】使用本函数需要包含

表 1.1 打开方式对照表

当新创建一个文件时,需要指定mode 参数。mode 参数的可选值和意义如表 1.2所示。

【函数原型】int close(int fd);

【功能】关闭之前被打开的文件或设备

【参数】fd : 文件或设备句柄,通常由open函数返回

【返回值】成功打开后返回0,失败返回-1

【头文件】使用本函数需要包含

【函数原型】ssize_t read(int fd, void *buffer, size_t count);

【功能】从已经打开的文件中读取数据

【参数】fd : 文件或设备句柄,通常由open函数返回

buffer : 数据缓冲区

count : 要读取的字节数

【返回值】成功读取后返回读取的字节数,失败返回-1

【头文件】使用本函数需要包含

【函数原型】ssize_t write(int fd, void *buffer, size_t count);

【功能】向已经打开的文件中写入数据

【参数】fd : 文件或设备句柄,通常由open函数返回

buffer : 数据缓冲区

count : 要写入的字节数

【返回值】成功写入后返回写入的字节数,失败返回-1

【头文件】使用本函数需要包含

【函数原型】int ioctl(int fd, unsigned long int cmd, …);

【功能】控制I/O 设备

【参数】fd : 文件或设备句柄,通常由open函数返回

cmd : 驱动程序控制命令

【返回值】成功返回0,失败返回错误码

【头文件】使用本函数需要包含

在本实验中,需要使用1个设备文件:“/dev/leds”对实验箱的4个LED 进行控制。

1)LED原理图

图7-1 led原理图

在原理图中搜索引脚“LED1”,可得:

图7-2 led引脚连接图

2) LED 控制

由上面原理图和引脚连接图可知,实验箱上的4 个LED分别于GPJ的4个IO口相连,通过控制GPIO输出的高低电平状态,即可控制4个LED的亮灭。在此低电平有效(点亮),详细的资源占用如下表。具体位于smart210核心板上

3) 打开led设备

使用open()函数打开led设备文件“/dev/leds”,代码如下

然后使用

ioctl 函数设置4

个GPIO口的输入输出状态。例如:要使led1点亮,代码如下:在这里1代表点亮,0代表第1盏led灯

五、实验步骤

1、按照实验原理的描述编写程序,并保存成.c 源程序文件;

2、在.c源文件所在目录下,编写编译所用的makefile文件

3、

6、测试自己编写的led测试程序

●采用nfs挂载方式,可直接执行./xxx

●采用串口传输方式,则需要修改执行文件的权限,执行以下命令:

chmod 755 xxx

./xxx

相关文档
最新文档