人生初见 发表于 2017-5-2 10:10:57

串口崩溃

我是用8670芯片,使用串口,接收数据,解析出命令后,向串口和spp发送字符串,不解析命令时115200波特率,可以没有问题的发送,但是加入解析部分,就会出现这个错误Connection with your BlueCore device has been lost. Please restart the debugger.,错误提示是Description of error:
The chip was reset, possibly following a firmware panic.,请问谁遇到过这种情况,原因是什么,如何解决?谢谢

mupro 发表于 2017-5-2 11:12:14

基本可以肯定是解析那块出了问题

米迦勒 发表于 2017-5-2 13:43:36




感觉应该是解析部分的问题,一般低数据率是不会出现这种问题的,除非你的数据率很大

人生初见 发表于 2017-5-2 14:05:53

我现在使用一个标志位,接收到系统SPP_MESSAGE_MORE_SPACE消息时,才标记为sink可用,则不会出现崩溃,请教大家个问题,就是sink不可用的时候SinkClaim和SinkMapAPI会引起系统的崩溃吗?

人生初见 发表于 2017-5-2 15:06:28

void analyze_uart_cmd(const uint8 *cmd,const uint16 len)
{
    uint16 i=0;
    while(i<len){
      Uart_Cmd.buf=cmd;
      if(Uart_Cmd.flag)
      {
            if(Uart_Cmd.index>=5)
            {            
                Uart_Cmd.len=2;         
               uart_send_msg(Uart_Cmd.buf,Uart_Cmd.len+4);
               /* send_msg_to_spp(Uart_Cmd.buf,Uart_Cmd.len+4);*/                  
                Uart_Cmd.index=0x00;
                Uart_Cmd.len=0;
                Uart_Cmd.flag=0x00;
            }
            else
            {
               Uart_Cmd.index++;
            }
      }
      else
      {
            if(Uart_Cmd.buf==0x6e)
            {
            printf("cmd Find!\n");
            Uart_Cmd.index++;
            Uart_Cmd.flag=0xff;   
            }
            else
            {
                Uart_Cmd.index=0x00;
                Uart_Cmd.flag=0x00;
            }         
      }
      i++;
    }
    /* uart_send_msg(cmd,len); */
   send_msg_to_spp(cmd,len);
}
这是具体的代码。现在这个代码每10ms接收一条命令,大约1500字节就会崩溃,麻烦大家帮忙看看

kkkk 发表于 2017-5-2 15:17:23

是你解析程序有问题吧                     

人生初见 发表于 2017-5-3 09:56:54

我实测了一下,如果随收随发,sink累积的数据一般是12,13字节,但是如果是解析完立刻发送,串口sink累积的数据就会增长,最后芯片就重启了,所以我猜测是sink数据溢出导致的单片机重启,不知道我的猜测对不对,有谁遇到过同样的问题,能不能给确定一下

AI5630 发表于 2017-5-5 09:12:25

没用过串口,太高级了
页: [1]
查看完整版本: 串口崩溃