做了一个PC通过串口发送广播数据的实验,实现过程中发现串口发完数据后广播的数据没办法更新,我使用GAP_UpdateAdvertisingData进行更新,simpleBLEBroadcaster_ProcessOSALMsg中加入串口接收的处理函数SerialHandle,实际调试中发现接收完串口的数据后,(此时串口无数据)对SerialHandle又调用了几次,SerialHandle函数具体如下
void SerialHandle(mtOSALSerialData_t *pMsg)
{
uint8 deallocateIncoming;
//if(Serial_flag)
{
uint8 i,len,*str = NULL;
str = pMsg->msg;
len = *str;
uint8 str1[2];
for(i = 1;i<=len;i++)
{
//HalUARTWrite(0,str+i,1);
str1[i-1] = str[i];
}
if(len){
duty = atoi(str1);
Serial_flag = false;
}
VOID osal_msg_deallocate( (uint8 *)pMsg );
deallocateIncoming = FALSE;
}
}
我感到特别困惑,也很着急(快deadline了),希望能得到解答,谢谢!