网站大量收购闲置独家精品文档,联系QQ:2885784924

浅谈串行端口程序设计.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验目的 实验内容 实验设备及工具 预备知识 实验目的 了解Linux环境下串口通信程序设计的基本方法 掌握终端的主要属性和设置方法 熟悉终端I/O函数的使用 学习使用多线程来完成串口的收发处理 实验内容 学习终端I/O函数的使用方法 学习多线程的编程应用 学习将多线程编程应用到串口的接收和发送程序设计中,编写通过串口实现简单的聊天功能 预备知识 有C语言基础 掌握Linux下常用编辑器的使用 掌握Makefile的编写和使用 掌握Linux下的程序编译与交叉编译过程 掌握多线程的程序设计方法 实验设备及工具 硬件 UP-NetARM2410-S实验平台 PC机一台 串口线一条 网线一条 软件 操作系统: Redhat Linux 9或更高版本 minicom arm linux开发环境 串行端口通信-实验原理 采用异步串行I/O方式 将传输数据的每一个字符一位接一位地传送。 各个不同位分时地使用同一传输通道 串行端口通信-实验原理 开始时,线路处于空闲状态,送出连续“1” 传送开始时,首先发送一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据,每个字符的数据位长度可以为5、6、7位或8位,一般采用ASCII编码。后面是奇偶校验位。最后是表示停止位的“1”信号,这个停止位可持续1、1.5、2位的时间宽度。传送结束。 每个数据位的宽度等于波特率的倒数。 微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600等。 串口通信的流程 串口通信编程指南 所需头文件 #include termios.h /*POSIX终端控制定义*/ 打开串口 Linux下一般为/dev/ttyS0(串口1),/dev/ttyS1(串口2) 在开发板上,串口设备位于/dev/tts/下,开发板上面没有ttyS0这个设备,需要我们手动建立 [/dev] ln –sf /dev/tts/0 ttyS0 串口通信编程指南-串口设置 最基本的设置包括波特率、校验位和停止位设置 设置struct termios结构体的各个成员值 串口通信编程指南-波特率设置 串口通信编程指南-校验位和停止位的设置 校验位的设置 8位数据 无校验 7位数据 奇校验 7位数据 偶校验 7位数据 space校验 串口通信编程指南-校验位和停止位的设置 设置停止位 1位、2位 raw模式(仅使用串口传输数据) 串口通信编程指南-读写串口 发送数据 读取串口数据 多线程的程序设计-多线程API pthread_create-线程创建函数 pthread_join - 等待一个线程的结束 多线程的程序设计-多线程API pthread_exit - 显式结束一个线程 多线程的程序设计-多线程API pthread_cond_wait - 使线程阻塞在条件变量上 多线程的程序设计 多线程应用的实例很多,可以参考 《实验指导书》 中的“2.2 多线程应用程序设计”的“生产者与消费者”问题 实验步骤 阅读理解参考程序的源码 $HOME/exp/basic/03_tty/term.c 在参考程序的基础上实现如下功能 能够通过串口实现PC机和实验平台之间的简单聊天功能:运行所编写的程序后,在宿主机和目标机上的终端窗口(可以telnet到目标机上)上输入若干个单词,回车后能够在对方的终端窗口上显示出来 编译应用程序 下载、调试、运行 注意事项 在启动实验平台设置ip后,可以使用telnet登录实验平台 在实验平台上建立相应的串口设备 ln –sf /dev/tts/0 /dev/ttyS0 or: ln –sf /dev/tts/1 /dev/ttyS0 使用Minicom登录过的串口(串口1)来进行实验可能会出一些问题,建议使用另一个串口(串口2)来进行串口通信的实验 * ? 2012 Embedded ? 2012 Embedded 串行端口程序设计 设置波特率为19200Bps pthread_cond_init - 初始化一个条件变量 pthread_cond_timewait - 在__abstime时间内线程阻塞在条件变量上,到时间阻塞解除

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档