串口和单片机通讯的时候,默认协议共6字符,串口发六字符给单片机,单片机检查是否符合协议指令,符合则做相应动作。譬如随便举个例子六字符协议第一位是引导码然后四位数据最后一位结...
串口和单片机通讯的时候,默认协议共6字符,串口发六字符给单片机,单片机检查是否符合
协议指令,符合则做相应动作。
譬如随便举个例子
六字符协议第一位是引导码然后四位数据最后一位结束码
问题
1.我单片机接收端用中断如下
void Tx_Rx_0_Update(void) interrupt 4
{
if(RI0)
{
RI0 = 0;//清中断标志
UART0_Rx_Buffer[UART0_Rx_Buffer_In++]= SBUF0;//接收数据
if(UART0_Rx_Buffer_In == UART0_Rx_Buffer_MAX)//循环数组,如果数据量又大又快,可
以把数组定义大一些。
{
UART0_Rx_Buffer_In = 0;
}
}
如果我发送端发给单片机5个字符怎么办。然后过一会儿在发6个字符,它不是接受的前五个字
符加后6个字符的第一个字符混在一起了嘛,命令显然是不符合单片机的,再发6字符,又不对
,慢慢的不就死循环,就算我发的正确的不也不能正确识别?是不是里面要加个计时,也就是
说我这一帧数据大约多少时间,超过时间了就判断是否符合ÿ