我的思路是收到响应后进入中断:
void Uart_Int(void) interrupt 4
{
static uchar j=0;
EA = 0;
if(RI == 1) //当硬件接收到一个数据时,RI会置位
{
recieve[j]=SBUF;
j++;
if(j==6) //收到的数据是几位,j就等于几
{
frame_Parse();
j=0;
}
RI = 0;
}
EA = 1;
}
void frame_Parse() //分析返回的数据看发送是否出错
{
if(recieve[4]==0) // 如果发送正确,回去继续发送
{
return;
}
if(recieve[4]!=0)
{
//缺少发送出错后重新发送的函数
}
}
主函数是:
void main()
{
Uart0_Init();
Int_Init();
while(1)
{
sendchar(0,0x01ff,0x01ff);
sendchar(0,0x01ff,0x01ff);
sendchar(0,0x01ff,0x01ff);
sendchar(0,0x01ff,0x01ff);
}
}
上面缺少的发送出错后重新发送的函数怎么写呢? |