主题中讨论的其他器件: 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。
