- 5
- 0
- 约3.27万字
- 约 35页
- 2019-10-04 发布于江西
- 举报
串口交互程序及其实现
TOC \o 1-4 \h \z \u
串行通信接口概述 2
串行通信编程方式 5
串口初始化 5
数据发送 6
数据接收 9
串口交互程序的实现 11
串口交互程序的使用 11
轮询模式的串口交互程序实现 15
中断模式的串口交互程序实现 24
串行通信编程总结 33
轮询方式和中断方式编程的对比 33
串口交互程序的其它实现方式 34
串行通信接口概述
PC 微机的串行通信使用的异步串行通信芯片是INS 8250 或NS16450 兼容芯片,统称为UART(通用异步接收发送器)。对UART 的编程实际上是对其内部寄存器执行读写操作。因此可将UART 看作是一组寄存器集合,包含发送、接收和控制三部分。UART 内部有10 个寄存器,供CPU 通过IN/OUT 指令对其进行访问。
这些寄存器的端口和用途见下表所示。其中端口0x3f8-0x3fe 用于微机上COM1 串行口,0x2f8-0x2fe 对应COM2 端口。条件DLAB(Divisor Latch Access Bit)是除数锁存访问位,是指线路控制寄存器的位7。
下表给出了PC机上串行通信接口的访问端口地址,以及对应的寄存器bit位的含义:
访问端口(COM1/COM2)
访问方式
DLAB位状态
各寄存器bit用途
0x3F8/0x2F8
R
0
写发送保持寄存器。含有将发送的字符。
W
0
读接收缓存寄存器。含有收到的字符。
R/W
1
读/写波特率因子低字节(LSB)。
0x3F9/0x2F9
R/W
1
读/写波特率因子高字节(MSB)。
R/W
0
读/写中断允许寄存器。
位7-4 全0 保留不用;
位3=1 modem 状态中断允许;
位2=1 接收器线路状态中断允许;
位1=1 发送保持寄存器空中断允许;
位0=1 已接收到数据中断允许。
0x3FA/0x2FA
R
X
读中断标识寄存器。中断处理程序用以判断此次中断是4 种中的那一种。
位7-3 全0(不用);
位2-1 确定中断的优先级;
= 11 接收状态有错中断,优先级最高;
= 10 已接收到数据中断,优先级第2;
= 01 发送保持寄存器空中断,优先级第3;
= 00 modem 状态改变中断,优先级第4。
位0=0 有待处理中断;=1 无中断。
0x3FB/0x2FB
W
X
写线路控制寄存器。
位7=1 除数锁存访问位(DLAB)。
0 接收器,发送保持或中断允许寄存器访问;
位6=1 允许间断;
位5=1 保持奇偶位;
位4=1 偶校验;=0 奇校验;
位3=1 允许奇偶校验;=0 无奇偶校验;
位2=1 1 位停止位;=0 无停止位;
位1-0 数据位长度:
= 00 5 位数据位;
= 01 6 位数据位;
= 10 7 位数据位;
= 11 8 位数据位。
0x3FC/0x2FC
W
X
写modem 控制寄存器。
位7-5 全0 保留;
位4=1 芯片处于循环反馈诊断操作模式;
位3=1 辅助用户指定输出2,允许INTRPT 到系统;
位2=1 辅助用户指定输出1,PC 机未用;
位1=1 使请求发送RTS 有效;
位0=1 使数据终端就绪DTR 有效。
0x3FD/0x2FD
R
X
读线路状态寄存器。
位7=0 保留;
位6=1 发送移位寄存器为空;
位5=1 发送保持寄存器为空,可以取字符发送;
位4=1 接收到满足间断条件的位序列;
位3=1 帧格式错误;
位2=1 奇偶校验错误;
位1=1 超越覆盖错误;
位0=1 接收器数据准备好,系统可读取。
0x3FE/0x2FE
R
X
读modem 状态寄存器。δ 表示信号发生变化。
位7=1 载波检测(CD)有效;
位6=1 响铃指示(RI)有效;
位5=1 数据设备就绪(DSR)有效;
位4=1 清除发送(CTS)有效;
位3=1 检测到δ 载波;
位2=1 检测到响铃信号边沿;
位1=1 δ 数据设备就绪(DSR);
位0=1 δ 清除发送(CTS)。
现对上述表格中比较重要的几个寄存器比特进行简要介绍:
DLAB:除数锁存访问位,设置为1的时候,用于设置波特率因子。设置为0的时候,用于设置或读取其它寄存器的值。也可以理解为一个标志位,用于对前两个寄存器(0x3F8/0x2F8、0x3F9/0x2F9)的用途进行区别。若为1,则这两个寄存器为波特率因子,否则这两个寄存器被用于发送/接收保持(缓存)寄存器和中断控制寄存器;
中断允许寄存器:用端口地址0x3F9/0x2F9进行访问,用于设置或读取COM端口的中断控制比特。该寄存器的0-3比特用于控制特定的中断源的状态,4-7比特保留(为0)。其中,0-3比特中,一个比特
您可能关注的文档
最近下载
- 关于层次分析法和灰色关联分析法的研究详解.doc VIP
- 高考一轮复习讲义第一讲学生 三角函数的概念同角三角函数关系式与诱导公式.doc VIP
- 高考数学 一轮复习讲义 任意角的三角函数.docx VIP
- 国际贸易实务实训教程.pdf VIP
- 高考数学 一轮复习讲义 -简单的三角恒等变换.docx VIP
- 如果要写年(带歌词完整版毛不易2024春晚歌曲) 高清钢琴谱五线谱.docx VIP
- 半边山半边海(原调版) 高清钢琴谱五线谱.docx VIP
- 下肢静脉血栓形成滤器术后护理.doc VIP
- 女性阻塞性睡眠呼吸暂停诊治专家共识 .pdf VIP
- 《我家是动物园》教案(2025—2026学年).docx VIP
原创力文档

文档评论(0)