串口崩溃
我是用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.,请问谁遇到过这种情况,原因是什么,如何解决?谢谢
基本可以肯定是解析那块出了问题
感觉应该是解析部分的问题,一般低数据率是不会出现这种问题的,除非你的数据率很大
我现在使用一个标志位,接收到系统SPP_MESSAGE_MORE_SPACE消息时,才标记为sink可用,则不会出现崩溃,请教大家个问题,就是sink不可用的时候SinkClaim和SinkMapAPI会引起系统的崩溃吗?
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字节就会崩溃,麻烦大家帮忙看看
是你解析程序有问题吧
我实测了一下,如果随收随发,sink累积的数据一般是12,13字节,但是如果是解析完立刻发送,串口sink累积的数据就会增长,最后芯片就重启了,所以我猜测是sink数据溢出导致的单片机重启,不知道我的猜测对不对,有谁遇到过同样的问题,能不能给确定一下
没用过串口,太高级了
页:
[1]