串口通信数据丢失问题》
🔧 问题场景:
"小王用STC89C52发送数据到电脑,发现每10个字节就丢失1个" 📌 解决方案: [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
TMOD = 0x20; // 定时器1模式2TH1 = 0xFD; // 9600bps@11.0592MHzSCON = 0x50; // 8位数据位TR1 = 1; // 启动定时器
[backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
void UART_SendByte(unsigned char dat) { SBUF = dat; while(!TI); // 等待发送完成 TI = 0; // 必须手动清零!}
📊 稳定性测试: 方案 连续发送10万字节错误数
未清TI标志8325
清TI标志0
|