如何将串口通信发送的字符串存入一个数组中

基于51单片机,字符串长度固定

你这问题有点不清楚,串口通信发送的字符串,到底是电脑发送的,还是单片机发送的?串口通信只是一种通信模式,并没说明是什么发送字符串。所以,你的问题很矛盾,如果是电脑发送,单片机接收,那应该是单片机接收后存入一个数组。可是,你的问题好像是电脑发送,又电脑存入数组。或单片机发送,单片机存入数组。
但看你程序,又都不是。是单片机接收了(那应该是电脑发送的),单片机又发送回去了,什么意思?谁存入数组?而根本没看到定义什么数组?追问

嗯 是电脑发送单片机接收 数组存入程序里但未定义出来。问题已解决,谢谢。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-30
首先要确定是单片机接收有问题还是发送的问题。 由于我以前也遇到过这个情况,建议你在单片机程序中不要直接将接收到的数据直接发送,而是先将接收到的数据存在某个数组中,再将这个数组发送。估计可以解决问题追问

这个步骤应该是在串口通信中断函数里面完成吧?如何按照你所说的把数据存到数组中?
void Usart() interrupt 4
{u8 receiveData; receiveData=SBUF;//出去接收到的数据
RI = 0; //清除接收中断标志位
SBUF=receiveData;//将接收到的数据放入到发送寄存器
while(!TI);
TI=0;
}这是我的代码,怎么改

本回答被网友采纳
相似回答