51单片机串口通信程序 只需要接收缓冲区收到一串字符串 但是字符串一
51单片机串口通信程序只需要接收缓冲区收到一串字符串但是字符串一直发送无法停止求解决程序如下voidSendData(unsignedcharx){while(busy)...
51单片机串口通信程序 只需要接收缓冲区收到一串字符串 但是字符串一直发送 无法停止求解决 程序如下
void SendData(unsigned char x)
{
while(busy);
busy = 1;
SBUF = x;
}
void SendString(unsigned char *string)
{
while(*string)
SendData(*string++);
}
void Uart_Isr() interrupt 4 using 1
{
unsigned char i = 0;
if(RI)
{
RI = 0;
if('\n' != SBUF)
receivebuff[i++] = SBUF;
else
{
receivebuff[i] = '\0';
i = 0;
SendString(receivebuff);
}
}
if(TI)
{
TI = 0;
busy = 0;
}
} 展开
void SendData(unsigned char x)
{
while(busy);
busy = 1;
SBUF = x;
}
void SendString(unsigned char *string)
{
while(*string)
SendData(*string++);
}
void Uart_Isr() interrupt 4 using 1
{
unsigned char i = 0;
if(RI)
{
RI = 0;
if('\n' != SBUF)
receivebuff[i++] = SBUF;
else
{
receivebuff[i] = '\0';
i = 0;
SendString(receivebuff);
}
}
if(TI)
{
TI = 0;
busy = 0;
}
} 展开
展开全部
只需要接收缓冲区收到一串字符串 但是字符串一直发送...
--题目,看不明白。
--你收到一串就不用再收了,你管他发不发干嘛?
--题目,看不明白。
--你收到一串就不用再收了,你管他发不发干嘛?
更多追问追答
追问
关键是我收到不止一串 会不断的收到 单片机会不断发送给pc端 没有停止
追答
收到了,确认无误后,应该给对方一个回信。
对方,就不发送了。
-------------------
双方通信,要制定一个协议,双方都要遵守。
数据的头,是什么字节;
数据的字节数,是多少;
数据的末位,是什么校验方法;
。。。。。。
你的协议是怎么制定的?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询