CH554 UART1 接收数据 处理耗时任务导致接收数据丢包的问题

代码如下:

    使用官方的例程, UART1 接收数据, 接收完数据后会去执行其他耗时操作,会有几率导致串口接收数据丢包的情况吗,请教下,这种问题该如何处理?


while(1)

    {

       if(Ready)

       {

dat = CH554UART1RcvByte( );                                     //程序死等,直到收到一个字节

printf("x%02X ",(UINT16)(dat) );

 

KMData[KMIndex] = dat;

  if(KMIndex>=5)

{

//if( (KMData[KMIndex-1] == 127) && (KMData[KMIndex] == 254) )

if( (KMData[KMIndex] == 254) )

{

printf(" END\n");

KMIndex = 0;

 

 

if(KMData[0] == 2)

{

MouseData(KMData);

}

if(KMData[0] == 1)

{

KeyboardData(KMData);

}

  

 

memset(KMData,0,sizeof(KMData));

}

else

{

KMIndex++;

}

}

else

{

KMIndex++;

}


串口接收使用中断方式实现,保证响应速度。


只有登录才能回复,可以选择微信账号登录