This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2642R: cc2642 尝试使用sdk种的uart2callback 实现串口的收发,但能发送 却无法接收数据,不确定什么原因

//初始处理接收的数据
void processReceivedData(void)
{
    // 刷新 RX 缓冲区状态
    size_t bytesRead;
    size_t bytesWritten = 0;
    bytesRead = 0;
    uint32_t status = UART2_STATUS_SUCCESS;

    // 读取接收到的数据
    status = UART2_read(uartHandle, rxBuffer, 5, &bytesRead);
    if (status != UART2_STATUS_SUCCESS)
    {
        /* UART2_read() failed */
        switch (status) {
                    
                    case UART2_STATUS_EINUSE:
                       // System_printf("UART read: The UART is currently in use.\n");
                        sendData("UART read: The UART is currently in use.\n", strlen("UART read: The UART is currently in use.\n"));
                        break;

                    default:
                        System_printf("UART read: Unknown error (0x%x)\n", status);
                        break;
        }

    }
    else {
            bytesRead = status;

        }
    if (numBytesRead > 0) {
        numBytesRead=0;
        // 处理接收到的数据
        rxBuffer[0]=numBytesRead;

        // 清除接收缓冲区
        memset(rxBuffer, 0, RX_BUFFER_SIZE);
    }
}

//callback
void callbackFxn(UART2_Handle handle, void *buffer, size_t count, void *userArg, int_fast16_t status)
{

    if (status != UART2_STATUS_SUCCESS)
    {
        /* RX error occured in UART2_read() */
        //while (1) {}
    }
 
}

//initial uart
    UART2_Params uartParams;
    UART2_HWAttrs const *hwAttrs;
 
UART2_Params_init(&uartParams);
    uartParams.readMode     = UART2_Mode_CALLBACK;
 
    uartParams.readCallback = callbackFxn;
 
    uartParams.baudRate = 115200;
    uartParams.dataLength = UART2_DataLen_8;
    uartParams.stopBits = UART2_StopBits_1;
    uartParams.parityType = UART2_Parity_NONE;


    uartHandle = UART2_open(CONFIG_UART2_0, &uartParams);

    if (uartHandle == NULL) {
        //Log_info0("UART open failed");
        //while (1) {}
        uint8_t test_msg1[50] = "UART open failed";
        UART2_write(uartHandle, test_msg1, sizeof(test_msg1), NULL);
    }
    else
    {
        uint8_t test_msg1[50] = "UART open success";
        UART2_write(uartHandle, test_msg1, sizeof(test_msg1), NULL);
    }
    
  //main han'shu  
    while (1)
    {
        // 主循环,处理其他任务
        Task_sleep(1000); // 休眠一段时间
        processReceivedData();

               Task_sleep(1000); // 休眠一段时间
 
               size_t bytesWritten;
               UART2_write(uartHandle, sendString, strlen(sendString), &bytesWritten);

          

代码如下   运行后

数据可以一直发送 但uart_read  一直显示串口在使用

Hello, UART!
UART read: The UART is currently in use.