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.

[参考译文] RTOS/AM4379:UART3读取问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/665083/rtos-am4379-uart3-read-issue

器件型号:AM4379

工具/软件:TI-RTOS

您好!

PDK_AM437X_1_0_6
PRU-ICSS-HSR-PRP-DAN_01.00.02.00
BIOS_6_46_04_53
CCS7


请查看我的示例代码:

UART_PARAMS_INIT (params);
params.parityType = UART_PAR_ODD;
params.readEcho = UART_ECHO_OFF;
params.readTimeout = 1000;
Params.readReturnMode = UART_return_full;
params.readDataMode = UART_DATA_BINARY;
uartGPS_Handle = UART_OPEN (USART_GPS_INST、&params);
if (uartGPS_Handle = NULL){
UART_printf ("无法打开 UART GPS\n\r\n);
返回;
}

while (1){
memset (buf、0、sizeof (buf));
if (UART_READ (uartGPS_Handle、buf、10)){
UART_printf ("%s\n"、buf);
}
否则{
UART_printf ("超时\n");
}
} 


问题症状:
我不断"超时"。 在将 UART 参数设置为 BIOS_WAIT_FOREVER 并且任务卡在 UART_READ 上之前。

如果我在 UART_READ 之前放置硬件断点、则会显示数据并将其打印到控制台。

我错过了什么? 奇怪的是,如果我在 while 中停止 CPU 的时间很短,代码就会起作用。。

此致、Mare

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    另一个想法。 我调试 UART_open()函数,并在 UARTLineCharacConfig()(CLS\src\IP\UART\V1\priv\UART.c)中找出该函数。 parityFlag 是枚举而不是位对齐整数:

    /*对 LCR.*/中的奇偶校验_EN、奇偶校验_Type1和奇偶校验_Type2字段进行编程
    lcrRegValue |= parityFlag &(UART_LCR_paritation_Type2_MASK |
    UART_LCR_parity、Type1_MASK |
    UART_LCR_parity、EN_MASK);
    HW_WR_REG32 (baseAddr + UART_LCR、lcrRegValue); 

    因此、奇偶校验位不会写入 UART_LCR 寄存器中的正确位位置。  

    请尽快解决此问题。
    此致、Mare

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在我的示例中将转接器件的设置更改为奇偶校验无、但读取 stell 在"运行"中不起作用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新:

    在牵引模式下、UART_READ()工作、但需要 DMA (或 ISR)。 可能有一些中断问题? 有什么知道的吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Marko、

    我建议您先将 HSR/PRP 和 PRSDK 升级到最新版本-

    HSR/PRP 1.0.3 - www.ti.com/.../PRU-ICSS-INDUSTRIAL-SW
    PRSDK 4.2 - www.ti.com/.../PROCESSOR-SDK-AM437X

    此致、
    Garrett