实验6Linux文件IO操作-ADC-串口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux文件IO操作-ADC、串口操作
【实验目的】
1. 熟悉linux的IO操作函数;
2. 掌握linux的ADC程序设计;
3. 掌握linux的串口程序设计;
【实验原理】
1. ADC数据采集
实验板上的ARM芯片s3c6410的一路模拟转换器ADC连接到了可变电阻W1.将W1的分压的模拟电压值转化为数字编码.原理图如下图所示:
操作主要步骤:
(1)打开ADC设备文件
int fd = open("/dev/adc", 0);
(2)读取ADC转化结果
char buffer[30];
int len = read(fd, buffer, sizeof buffer -1); //字符串来描述转化结果
2. 串口通信
【实验内容】
1 ADC数据采集
功能:实现模拟电压的实时采集,采集周期为500ms,并在ubuntu终端打印ADC转化结果。
编译命令:
arm-linux-gcc adc.c –o adc
命令执行:
./adc
源代码adc.c:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <fcntl.h>
#include <linux/fs.h> #include <errno.h>
#include <string.h>
2.串口通信实验
功能:实现上位机(PC,ubuntu)串口2与实验板(ARM,嵌入式linux)的串口COM2的数据通信。
该程序包括写串口程序和读串口程序。
ARM实验板上运行读串口程序,Ubuntu上运行写串口程序。
重要说明:在uart_api.h有两个比较重要的宏定义:
#define GNR_COM 0 //普通串口
#define USB_COM 1 //USB串口
#define COM_TYPE GNR_COM //程序中选择串口类型为:普通串口
#define HOST_COM_PORT 2 //主机(PC,ubuntu)串口号,编号从1开始
#define TARGET_COM_PORT 2 //目标机(ARM)串口号,编号从1开始
(1)编译读串口程序,
该读串口程序主要有四个文件构成:com_reader.c, uart_api.c,
uart_api.h,Makefile
在ubuntu上编译读串口程序,进入到源代码存放目录,输入命令:
make
(2)编译写串口程序
该写串口程序主要有四个文件构成:com_writer.c, uart_api.c, uart_api.c,Makefile
在ubuntu上编译写串口程序,进入到源代码存放目录,输入命令:
make
(3)运行程序
在ARM实验板运行:
./com_reader
Ubuntu上运行写串口程序:
./com_writer
在ubuntu上输入相应的字符串,看ARM实验板能否正确收到数据。