第 5 章串行通信 2本章重点?串行通信编程的流程?串行通信端口的设置?串行通信中相关函数的应用 3 串行通信概述?现在的串行通信端口( RS-232 )是计算机上的标准配置。最为常见的应用是连接调制解调器进行数据传输。?1 2 两个串行通信端口。 端口从外观上看有 9个针脚。在 Linux 中,所有的设备文件都位于“/dev ”下,1 、 COM2 对应的设备名依次为“/dev/ttyS0 ”、“/dev/ttyS1 ”。 Linux 对设备的操作方法和对文件的操作方法相同,因此,对串口的读写就可以使用简单的“ read ”、“ write ”函数来完成,所不同的是要对串口的一些参数进行配置。 4 串行通信程序的设计 串行通信程序设计流程 5 打开通讯端口?在 Linux 中把串口设备视为普通文件,可使用 open() 函数来打开串口设备。?例 :打开 PC 1 串行通信端口。? 思考题:要求以只读的模式打开计 2 。 6 设置串口属性?在L inux 中若要对串口进行操作,如改变其波特率、字符大小等,就是对结构体 stuct termios 中成员的值进行设置。注意:在这个结构中最为重要的是 c_iflag ,通过对它的赋值, 用户可以设置波特率、字符大小、数据位、停止位、奇偶校验位和硬件控制等。 7 设置串口属性? c_oflag (输出模式) c_cflag (控制模式) c_lflag (局部模式) [NCCS] (特殊控制字符) 思考题:在设置串口属性时,要求奇偶校验。请写出设置串口的语句。 8 串口通信程序设计主要语句说明?串口通信一般分为接收端和发送端。接收端: PC 1 端口。 1 端口,语句可写为: fd=open( “/dev/ttyS0 ”,O_RDWR | O_NOCTTY); ,并保存至结构体变量 oldtio 。 tcgetattr(fd,&oldtio); newtio 。 bzero(&newtio,sizeof(newtio)); 9 串口通信程序设计主要语句说明 。(1)假定设置波特率为 38400 ,8个数据位,忽略任何调制解调器状态,同时启动接受器。 =BAUDRATE |CS8 |CLOCAL|CREAD; (2)忽略奇偶校验错误 =IGNPAR; (3)设输出模式非标准型,同时不回应。 =0; (4)启用正规模式 =ICANON; 10 串口通信程序设计主要语句说明 tcflush(fd,TCIFLUSH); newtio tcsetattr(fd,TCSANOW,&newtio); 。 read(fd,buf,255); 。 close(fd); tcsetattr(fd,TCSANOW,&oldtio);
linux软件工程师(C语言)实用教程 第5章 来自淘豆网www.taodocs.com转载请标明出处.