主题中讨论的其他器件: CC2640R2F
您好!
我将 CC2340R5 based_ble 外设 代码与 ANCS 一起使用、并已 按如下所示添加 UART 代码。
void UART_Init() { /* Create a UART in CALLBACK read mode */ UART2_Params_init(&uartParams); uartParams.readMode = UART2_Mode_CALLBACK; uartParams.readCallback = UARTCallback; uartParams.readReturnMode = UART2_ReadReturnMode_PARTIAL; uartParams.baudRate = 115200; uartParams.eventCallback = UARTEventCallback; uartParams.eventMask = UART2_EVENT_OVERRUN; uart = UART2_open(CONFIG_UART2_0, &uartParams); if (uart == NULL) { /* UART2_open() failed */ while (1) { } } // Setup an initial read UART2_read(uart, &uartReadBuffer, UART_MAX_READ_SIZE, 0); } void eventcallbackFxn(UART2_Handle handle, uint32_t event, uint32_t data, void *userArg) { if (event == UART2_EVENT_OVERRUN) //check if the event is overrun event { UART2_flushRx(uart); } } void UARTCallback(UART2_Handle handle, void *buffer, size_t count, void *userArg, int_fast16_t status) { uartPacketSize = count; BLEAppUtil_invokeFunction(HandlingFunction,buffer); } void HandlingFunction(char *pData) { UART2_write(uart,pData,uartPacketSize,0); UART2_read(uart, uartReadBuffer, UART_MAX_READ_SIZE, 0); }
现在、iPhone 已连接到外设并进行连续通话和短信(信息将在 UART 上打印) 、同时 在移动蓝牙设置中进行连接断开。 在 发生这些测试用例 UART 溢出事件时、以100ms 的间隔通过串行向外设推送数据。
当超限发生在 事件调用 backFxn 呼叫 UART2_flushRx (UART) 功能和 5秒后 HAL_ASSERT_LAY_ICALL_TIMEOUT。
那么如何避免 UART 溢出、以及为什么 UART2_flushRx (UART) 函数导致 HAL_ASSERT_LAY_ICALL_TIMEOUT。
SDK 版本: simplelink_lowpower_f3_sdk_7_40_00_64 (外设)
CCS 版本:CCS 12.5.0
谢谢。
Vignesh。