标题: 请教单片机串口如何发送长数据串不丢包(16进制) [打印本页]

作者: molo    时间: 2020-10-21 15:18
标题: 请教单片机串口如何发送长数据串不丢包(16进制)
各位大侠好!      请教一下,想通过STC8单片机,按键和串口结合,实现以下功能:
1、按按键1,发送字符串1,
2、按按键2,发送字符串2,
3、按按键3,发送字符串3,
4、按按键4,发送字符串4。

长字符串为16进制,类似如下格式:
5b0102020000001507da07da7d0100007b227678223a312c227679223a302c2277223a307a

咨询一下,这长字符串怎么处理好,我用以下方式的容易丢包
unsigned char JDQdata1[7]={0x5a,0x01,0x00,0x02,0x00,0x00,0x00};  
unsigned char JDQdata2[9]={0x2a,0x07,0xda,0x07,0xda,0x7d,0x01,0x00,0x00};




作者: wulin    时间: 2020-10-21 16:21
发送长数据串容易出错主要是硬件原因。比如时钟不准确(片内RC振荡器),波特率过高,传输距离过长,其次是软件原因。比如处理长字符串的软件有缺陷(缺少数据头、数据尾及验证码等),其它高优先级中断干扰串口数据发送等等。
作者: amandv    时间: 2020-10-21 19:00
先降低波特率测试,你的字符串不算长。我的程序经常发512字节的数据,检查没有错过.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1