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.

[参考译文] TMS570LC4357:SCI (UART)环回问题

Guru**** 2386620 points
Other Parts Discussed in Thread: TMS570LC4357
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1441696/tms570lc4357-sci-uart-loop-back-issue

器件型号:TMS570LC4357

工具与软件:

尊敬的 TI 团队:  

我正在 TMS570LC4357中处理 SCI (UART)、并尝试执行环回测试。  
当我一步一步地执行我的代码时、Loop Back Test 是成功的、而它在自由运行中失败。  

将随附我当前正在使用的环回测试代码、 请仔细查看并尽快帮助我们。  

谢谢。此致、  
Naveen  

T_BOOL Uart1LoopBackTest()
{
    T_UINT8 transmit_value = 0;
    T_UINT8 receive_value = 0;
    T_UINT16 index = 0;
    T_BOOL return_status = 0;

    sciInit();

    sciEnableLoopback(sciREG1, Digital_Lbk);

    transmit_value = 0xAA;
    sciSend(sciREG1, sizeof(transmit_value), &transmit_value);

    index = M_CLEAR;
    while(1)
    {
        if(M_ZERO M_NOT_EQU sciIsRxReady(sciREG1))
        {
            sciReceive(sciREG1, sizeof(receive_value), &receive_value);
            break;
        }
        else if (M_THOUSAND M_EQUAL index)
        {
            break;
        }
        index = index + M_ONE;
    }

    if(transmit_value M_EQUAL receive_value)
    {
        return_status = TRUE;
    }
    else
    {
        return_status = FALSE;
    }

    sciDisableLoopback(sciREG1);
    return return_status;
}