duo点 发表于 2023-8-16 10:16

关于单片机串口的问题


最近有点傻了~单片机的串口都不知道怎么玩了

内心突然有了一个困惑~单片机的串口如何做到双工呢?

单片机的数据是从数据寄存器发出的,发的时候不是问题,但收的时候需要从寄存器把数据读出来,这个过程是需要程序员手动触发的

发送方也不知道你啥时候调用接受,那会不会出现这种情况,发送方发过来了,因为没有主动去接受,数据寄存器的数据被覆盖,导致数据丢失呢?

慢动作 发表于 2023-8-18 01:09

使用接收缓冲区存储数据,避免立即从寄存器读取,减少数据丢失风险。

kzlzqi 发表于 2023-8-18 11:11

处理溢出或丢失的数据,避免影响系统稳定性。

地瓜patch 发表于 2023-8-18 23:10

c17 发表于 2023-8-23 10:10
在主循环中定期检查接收,减少数据被覆盖的风险。

就是这个定期才容易被覆盖

鱿鱼丝 发表于 2023-8-19 07:56

通过中断触发接收处理,保证及时读取接收数据,无需手动触发。

4y1b3 发表于 2023-8-19 11:08

应用流控制机制,确保数据发送和接收的同步,减少缓冲区溢出。

舒伯特玫瑰 发表于 2023-8-21 18:46

确保缓冲区足够大,处理数据拥塞情况,减少丢失。

610u 发表于 2023-8-22 13:17

分配适当的处理优先级,保证接收数据的及时性。

610u 发表于 2023-8-22 15:04

确保发送和接收速率匹配,避免速度不一致造成的数据丢失。

c17 发表于 2023-8-23 10:10

在主循环中定期检查接收,减少数据被覆盖的风险。

yellow555 发表于 2023-8-29 12:01

使用标志位记录接收状态,通知程序何时读取数据,避免数据冲突。

szt1993 发表于 2023-9-28 14:55

全双工使用422通讯或者收发独立的232通讯

玫瑰凋零日记 发表于 2025-9-25 17:39

单片机串口是异步通信接口,通过 TX/RX 线传输数据,需约定波特率、数据位等参数。硬件自动加校验位,软件处理数据帧。常用于模块通信,需处理中断接收、超时重发,注意波特率误差,避免数据丢失,可加缓冲区提升稳定性。
页: [1]
查看完整版本: 关于单片机串口的问题