Quantcast
Channel: 蓝牙论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 7485

CC2540 串口收发乱码

$
0
0

TI 1.3 的实例包,

使用 SimpleBLEPeripheral 增加串口功能!如果不广播,则收发没有错误,

开始广播后,一段时间就有几率出现乱码~!


unsigned char uart_Buf[150];
unsigned char g_getUartLen;
static void RxCB(uint8 port , uint8 event)
{
  g_getUartLen = HalUARTRead(HAL_UART_PORT_0,uart_Buf,100);
  if(g_getUartLen)
  {
    SerialEventStruct *pMsgSerial;
    pMsgSerial = (SerialEventStruct *)osal_msg_allocate( sizeof(SerialEventStruct)) ;
    pMsgSerial->hdr.event = SERIAL_MSG;
    pMsgSerial->msg = (uint8 *)osal_msg_allocate( sizeof(g_getUartLen)) ;
    osal_memcpy(pMsgSerial->msg,uart_Buf,g_getUartLen);
    pMsgSerial->len = g_getUartLen ;
    osal_msg_send( simpleBLEPeripheral_TaskID, (uint8 *)pMsgSerial);
  }
}


void UartInit(void)
{
  halUARTCfg_t uartCfg;
  uartCfg.configured = TRUE;
  uartCfg.baudRate = HAL_UART_BR_115200;
  uartCfg.flowControl = FALSE;
  uartCfg.callBackFunc = RxCB ;
  uartCfg.flowControlThreshold = MT_UART_THRESHOLD;
  uartCfg.rx.maxBufSize = MT_UART_RX_BUFF_MAX;
  uartCfg.tx.maxBufSize = MT_UART_TX_BUFF_MAX;
  uartCfg.idleTimeout = MT_UART_IDLE_TIMEOUT;
  uartCfg.intEnable = TRUE; 
  HalUARTOpen(HAL_UART_PORT_0,&uartCfg);
}

 

static void simpleBLEPeripheral_ProcessOSALMsg( osal_event_hdr_t *pMsg )
{
  switch ( pMsg->event )
  {
  #if defined( CC2540_MINIDK )
    case KEY_CHANGE:
      simpleBLEPeripheral_HandleKeys( ((keyChange_t *)pMsg)->state, ((keyChange_t *)pMsg)->keys );
      break;
    case SERIAL_MSG:
       HalUARTWrite(0,((SerialEventStruct *)pMsg)->msg,((SerialEventStruct *)pMsg)->len);
       osal_msg_deallocate (((SerialEventStruct *)pMsg)->msg);
      break;
  #endif // #if defined( CC2540_MINIDK )

  default:
    // do nothing
    break;
  }
}

 


Viewing all articles
Browse latest Browse all 7485

Trending Articles