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;
}
}