1 / 22
文档名称:

串行端口程序设计.ppt

格式:ppt   大小:1,219KB   页数:22页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

串行端口程序设计.ppt

上传人:卓小妹 2022/7/31 文件大小:1.19 MB

下载得到文件列表

串行端口程序设计.ppt

文档介绍

文档介绍:串行端口程序设计
第1页,共22页,2022年,5月20日,6点0分,星期日
实验目的
实验内容
实验设备及工具
预备知识
第2页,共22页,2022年,5月20日,6点0分,星期日
实验目的
了解Linux环境下串行端口程序设计
第1页,共22页,2022年,5月20日,6点0分,星期日
实验目的
实验内容
实验设备及工具
预备知识
第2页,共22页,2022年,5月20日,6点0分,星期日
实验目的
了解Linux环境下串口通信程序设计的基本方法
掌握终端的主要属性和设置方法
熟悉终端I/O函数的使用
学****使用多线程来完成串口的收发处理
第3页,共22页,2022年,5月20日,6点0分,星期日
实验内容
学****终端I/O函数的使用方法
学****多线程的编程应用
学****将多线程编程应用到串口的接收和发送程序设计中,编写通过串口实现简单的聊天功能
第4页,共22页,2022年,5月20日,6点0分,星期日
预备知识
有C语言基础
掌握Linux下常用编辑器的使用
掌握Makefile的编写和使用
掌握Linux下的程序编译与交叉编译过程
掌握多线程的程序设计方法
第5页,共22页,2022年,5月20日,6点0分,星期日
实验设备及工具
硬件
UP-NetARM2410-S实验平台
PC机一台
串口线一条
网线一条
软件
操作系统: Redhat Linux 9或更高版本
minicom
arm linux开发环境
第6页,共22页,2022年,5月20日,6点0分,星期日
串行端口通信-实验原理
采用异步串行I/O方式
将传输数据的每一个字符一位接一位地传送。
各个不同位分时地使用同一传输通道
第7页,共22页,2022年,5月20日,6点0分,星期日
串行端口通信-实验原理
开始时,线路处于空闲状态,送出连续“1”
传送开始时,首先发送一个“0”作为起始位,然后出现在通信线上的是字符的二进制编码数据,每个字符的数据位长度可以为5、6、7位或8位,一般采用ASCII编码。后面是奇偶校验位。最后是表示停止位的“1”信号,这个停止位可持续1、、2位的时间宽度。传送结束。
每个数据位的宽度等于波特率的倒数。
微机异步串行通信中,常用的波特率为50,95,110,150,300,600,1200,2400,4800,9600等。
第8页,共22页,2022年,5月20日,6点0分,星期日
串口通信的流程
第9页,共22页,2022年,5月20日,6点0分,星期日
串口通信编程指南
所需头文件
#include <> /*POSIX终端控制定义*/
打开串口
Linux下一般为/dev/ttyS0(串口1),/dev/ttyS1(串口2)
在开发板上,串口设备位于/dev/tts/下,开发板上面没有ttyS0这个设备,需要我们手动建立
[/dev] ln –sf /dev/tts/0 ttyS0
第10页,共22页,2022年,5月20日,6点0分,星期日
串口通信编程指南-串口设置
最基本的设置包括波特率、校验位和停止位设置
设置struct termios结构体的各个成员值
第11页,共22页,2022年,5月20日,6点0分,星期日
串口通信编程指南-波特率设置
设置波特率为19200Bps
第12页,共22页,2022年,5月20日,6点0分,星期日
串口通信编程指南-校验位和停止位的设置
校验位的设置
8位数据 无校验
7位数据 奇校验
7位数据 偶校验
7位数据 space校验
第13页,共22页,2022年,5月20日,6点0分,星期日
串口通信编程指南-校验位和停止位的设置
设置停止位
1位、2位
raw模式(仅使用串口传输数据)
第14页,共22页,2022年,5月20日,6点0分,星期日
串口通信编程指南-读写串口
发送数据
读取串口数据
第15页,共22页,2022年,5月20日,6点0分,星期日
多线程的程序设计-多线程API
pthread_create-线程创建函数
pthread_join - 等待一个线程的结束
第16页,共22页,2022年,5月20日,6点0分,星期日
多线程的程序设计-多线程API
pthread_exit - 显式结束一个线程
pthread_cond_init - 初始化一个条件变量
第17页,共22页,2022年,5月20日,6点0分,星期日
多线程的程序设计-多线程API
pthread_cond_wait - 使线程阻塞在条件变量上
pthread_cond_timewait - 在__abstime时间内