linux软件工程师(C语言)实用教程第5章.ppt

上传人:sh****n 文档编号:6375845 上传时间:2020-02-24 格式:PPT 页数:20 大小:1.31MB
返回 下载 相关 举报
linux软件工程师(C语言)实用教程第5章.ppt_第1页
第1页 / 共20页
linux软件工程师(C语言)实用教程第5章.ppt_第2页
第2页 / 共20页
linux软件工程师(C语言)实用教程第5章.ppt_第3页
第3页 / 共20页
点击查看更多>>
资源描述
第5章 串行通信 2 本章重点 串行通信编程的流程串行通信端口的设置串行通信中相关函数的应用 3 5 1串行通信概述 现在的串行通信端口 RS 232 是计算机上的标准配置 最为常见的应用是连接调制解调器进行数据传输 计算机通常包含COM1和COM2两个串行通信端口 一般计算机的COM端口从外观上看有9个针脚 在Linux中 所有的设备文件都位于 dev 下 其中COM1 COM2对应的设备名依次为 dev ttyS0 dev ttyS1 Linux对设备的操作方法和对文件的操作方法相同 因此 对串口的读写就可以使用简单的 read write 函数来完成 所不同的是要对串口的一些参数进行配置 4 5 2串行通信程序的设计 5 2 1串行通信程序设计流程 5 5 2 2打开通讯端口 在Linux中把串口设备视为普通文件 可使用open 函数来打开串口设备 例5 1 打开PC的COM1串行通信端口 源程序代码com1open c 思考题 要求以只读的模式打开计算机的COM2 6 5 2 3设置串口属性 在 inux中若要对串口进行操作 如改变其波特率 字符大小等 就是对结构体stucttermios中成员的值进行设置 注意 在这个结构中最为重要的是c iflag 通过对它的赋值 用户可以设置波特率 字符大小 数据位 停止位 奇偶校验位和硬件控制等 7 5 2 3设置串口属性 c oflag 输出模式 c cflag 控制模式 c lflag 局部模式 c cc NCCS 特殊控制字符 思考题 在设置串口属性时 要求奇偶校验 请写出设置串口的语句 8 5 2 4串口通信程序设计主要语句说明 串口通信一般分为接收端和发送端 接收端 打开PC的COM1端口 如果以读写的方式打开COM1端口 语句可写为 fd open dev ttyS0 O RDWR O NOCTTY 取得当前串口值 并保存至结构体变量oldtio tcgetattr fd 9 5 2 4串口通信程序设计主要语句说明 设置串口参数 1 假定设置波特率为38400 8个数据位 忽略任何调制解调器状态 同时启动接受器 newtio c cflag BAUDRATE CS8 CLOCAL CREAD 2 忽略奇偶校验错误newtio c iflag IGNPAR 3 设输出模式非标准型 同时不回应 ewtio c oflag 0 4 启用正规模式newtio c lflag ICANON 10 5 2 4串口通信程序设计主要语句说明 清除所有列队在串口的输入输出tcflush fd TCIFLUSH 设置当前的串口参数为newtiotcsetattr fd TCSANOW 11 5 2 4串口通信程序设计主要语句说明 发送端 打开PC的COM2端口 fd open dev ttyS1 O RDWR O NOCTTY 取得当前串口值 并保存至oldtio tcgetattr fd 12 5 2 4串口通信程序设计主要语句说明 设置串口参数 1 设置波特率为38400 8个数据位 忽略任何调制解调器状态同时启动接受器 newtio c cflag BAUDRATE CS8 CLOCAL CREAD 2 忽略奇偶校验错误newtio c iflag IGNPAR 3 设输出模式非标准型 同时不回应 ewtio c oflag 0 4 启用正规模式newtio c lflag ICANON 13 5 2 4串口通信程序设计主要语句说明 清除所有列队在串口的输入输出tcflush fd TCIFLUSH 设置当前的串口为newtiotcsetattr fd TCSANOW 恢复旧的端口参数 14 5 2 4串口通信程序设计主要语句说明 例5 2 通过计算机的COM1和COM2进行通信 利用RS 232来传送信息 其中COM1为发射端 COM2为接收端 当接收端接收到字符 时 结束传输 RS 232的通信格式为38400 n 8 1 38400表示波特率大小 n表示不进行奇偶校验 8表示数据位 1表示停止位 步骤1 连线计算机的COM1和COM2 通过RS 232线连接 15 5 2 4串口通信程序设计主要语句说明 步骤2 编辑源程序代码设接收端的源文件名为 5 2 r c 发送端的源文件名为 5 2 s c 在接收端打开端口com2后 com2口会读取计算机com1口传来的数据 并输出 若com2口接收到的字符为 则结束传输 16 5 2 4串口通信程序设计主要语句说明 步骤3 用gcc编译程序 root localhostroot gcc5 2 r c o5 2 r步骤4 编辑发送端源程序代码发送端com1 它会把com1的数据发送给com2 若com2接收的字符为 则结束传输 root localhostroot vim5 2 s c 17 5 2 4串口通信程序设计主要语句说明 步骤5 用gcc编译程序 root localhostroot gcc5 2 s c o5 2 s步骤6 测试运行结果1 打开一个终端 运行发送端程序 root localhostroot 5 2 r2 2 打开另一个终端 运行发送端程序 并输入 hello lupa 3 接着会在接受端看到传来的数据 结果分析 接受端收到发送端传来的字符 hello lupa 并统计出了字符数 18 5 2 4串口通信程序设计主要语句说明 tcgetattr函数说明 tcsetattr函数说明 19 5 2 4串口通信程序设计主要语句说明 tcflush函数说明 思考题把例5 2中的RS 232通信格式改为51200 n 8 1 其他设置不变 然后完成次实验 参考例5 2 RS 232的通信格式不变 依然是38400 n 8 1 要求发送端先读取文件的内容 然后将其内容发送到接收端 并在屏幕上打印出接受到的内容 20 思考与实验 open dev ttyS0 O RDWR O NOCTTY O NDELAY 写出这行代码的含义 设置串行口属性参数为 波特率38400并且启用偶校验位 编写一个串口通信程序 要求使用硬件流控制 8位字符大小 以9600的波特率从一台计算机的com1口发送键盘输入的字符 从另一计算机的com1接受 并在屏幕上打印出接受到的字符
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!