《嵌入式开发环境与工具》实验指导书
2.5 Linux串口通信实验 2.5.1 实验目的
1. 了解Linux下串行端口程序设计的基本原理;
2. 掌握终端的主要属性及设置方法,熟悉终端 IO函数的使用;
2.5.2 实验内容
1. 编写serial应用程序; 2. 编写Makefile文件;
3. 下载并调试serial应用程序。
2.5.3 预备知识
1. C语言的基础知识;
2. 程序调试的基础知识和方法; 3. Linux的基本操作;
4. 掌握Linux下的程序编译与交叉编译过程。
2.5.4 实验设备
1. 硬件:CVT-6410嵌入式实验箱、PC机Pentium500以上,硬盘10G以上; 2. 软件:PC机操作系统 redhat linux 9.0 + Linux开发环境。
2.5.5 基础知识
Linux操作系统从一开始就对串行口提供了很好的支持,为进行串行通讯提供了大量的函数,本实验主要是为掌握在Linux中进行串行通讯编程的基本方法。 1. 串口编程相关头文件
#include
#include
#include
45
《嵌入式开发环境与工具》实验指导书
#include
2. 打开串口
在Linux 下串口文件是位于/dev 下,串口一为/dev/ttySAC0 ,串口二为/dev/ttySAC1 ,打开串口是通过使用标准的文件打开函数操作:
int fd;
/*以读写方式打开串口*/
fd = open( \if (-1 == fd){ perror(\}
3. 设置串口
最基本的设置串口包括波特率设置,效验位和停止位设置。串口的设置主要是设置struct termios结构体的各成员值。
struct termio {
unsigned short c_iflag; /* 输入模式标志*/ unsigned short c_oflag; /* 输出模式标志*/ unsigned short c_cflag; /* 控制模式标志*/ unsigned short c_lflag; /* local mode flags */ unsigned char c_line; /* line discipline */ unsigned char c_cc[NCC]; /* control characters */ };
1) 波特率设置
下面是修改波特率的代码:
struct termios Opt; tcgetattr(fd, &Opt);
cfsetispeed(&Opt,B19200); /*设置为19200Bps*/ cfsetospeed(&Opt,B19200); tcsetattr(fd,TCANOW,&Opt);
2) 校验位的设置: 无效验8位
Option.c_cflag &= ~PARENB; Option.c_cflag &= ~CSTOPB; Option.c_cflag &= ~CSIZE; Option.c_cflag |= ~CS8;
奇效验(Odd) 7位
Option.c_cflag |= ~PARENB; Option.c_cflag &= ~PARODD; Option.c_cflag &= ~CSTOPB; Option.c_cflag &= ~CSIZE; Option.c_cflag |= ~CS7;
偶效验(Even) 7位
Option.c_cflag &= ~PARENB;
46
相关推荐: