在线时间11 小时
UID3773268
注册时间2021-8-30
NXP金币0
该用户从未签到
注册会员
- 积分
- 74
- 最后登录
- 2022-9-28
|
楼主 |
发表于 2021-9-30 10:44:39
|
显示全部楼层
这个接收是会阻塞线程的吧?---是的,我开了一个线程专门处理串口数据,希望实现:串口有数据来,函数结束接收,接下来处理数据;处理之后再接收数据。代码如下:
/* Receive user input and send it back to terminal. */
do
{
error = USART_RTOS_Receive(&FLEXCOMM1_rtos_handle, recv_buffer, sizeof(recv_buffer), &n);
if (error == kStatus_USART_RxRingBufferOverrun)
{
/* Notify about hardware buffer overrun */
if (kStatus_Success !=
USART_RTOS_Send(&FLEXCOMM1_rtos_handle, (uint8_t *)send_buffer_overrun, strlen(send_buffer_overrun)))
{
vTaskSuspend(NULL);
}
}
if (n > 0)
{
/* send back the received data */
USART_RTOS_Send(&FLEXCOMM1_rtos_handle, recv_buffer, n);
ux_rs232_handle(recv_buffer, n);
}
} while (kStatus_Success == error); |
|