实验七 LED灯控制实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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