14、串口通信知识详解与示例实践

串口通信知识详解与示例实践

1. 串口通信中断

在串口通信中,有两个重要的中断:发送中断(TI,Transmit Interrupt)和接收中断(RI,Receive Interrupt)。当 SBUF 中的一个字节成功发送时,UART 会设置发送中断标志;当接收到一个字节时,UART 会设置接收中断标志。如果 ES(Enable Serial)被设置,那么当 TI 或 RI 被置位时,会自动调用一个特殊的中断处理函数。程序需要负责处理这些中断并重置标志。

2. 握手协议

2.1 8051 缓冲器问题

8051 只有一个单字节的缓冲区 SBUF,而典型的带有 16550 UART 的 PC 串口有 16 字节的缓冲区。如果 SBUF 不能被“快速”处理,传入的字节可能会覆盖尚未读取和处理的字节。为了解决这个问题,可以使用握手协议。

2.2 握手协议类型

握手协议有软件和硬件两种形式:
- 软件握手 :也称为 XON/XOFF,使用字节流中的控制字符来信号数据传输的暂停和恢复。Control - S(ASCII 19)信号通知其他设备停止发送数据,Control - Q(ASCII 17)信号通知其他设备恢复发送数据。这种方法的缺点是响应时间较慢,并且 ASCII 字符集中的两个字符必须保留用于握手。
- 硬件握手 :使用额外的 I/O 线。最常见的硬件握手形式是使用两条额外的控制线:RTS(Ready to Send)和 CTS(Clear to Send)。每个设备控制一条线。当可以接收字节时,相应的线(RTS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值