51单片机接收PC传来的字符串,当字符串长度比较大时会出现覆盖,如何解决?

就是比如说我现在在上机位可以一次向单片机发送一个长度为4的字符串,单片机可以完整接受到,但当字符串长度为10的时候就有覆盖,请问如何解决这个问题才能让我收到完整的字符串?

建议缓冲区开大一点,程序定时去查询缓冲区数据,缓冲区大小一般是数据最大长度的2倍,这样就不怕数据覆盖了追问

可是51单片机的SBUF缓冲区是固定的吧

追答

不是SBUF,我的意思是自己定义个数组,比如UsartBuf[20],将SBUF里接收到的数据直接保存到这个数组中,程序定时去查数组里的数据。不过这样做要有自己的通信协议,不然无法判断数据

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-03-02
程序有问题或者ram重叠或者没有释放
第2个回答  2015-03-02
程序有问题吧
相似回答