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.

[参考译文] LAUNCHXL-CC26X2R1:UART 驱动程序 Rx 问题

Guru**** 2445440 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1174857/launchxl-cc26x2r1-uart-driver-rx-problems

器件型号:LAUNCHXL-CC26X2R1

你好。 我计划 在 Launchpad 中的项目中实施 UART。 使用 SDK 中 cc13x2_cc26x2的可用 driverlib。 我打算使用禁用 FIFO 的标准 UART 设置(这是一个小问题、因为只有一个用于 TX 和 Rx 数据的寄存器、UART DR)、我尝试传输单个测试字节、它起作用。  

//*****************************************************************************
//
// Waits to send a character from the specified port
//
//*****************************************************************************
void
UARTCharPut(uint32_t ui32Base, uint8_t ui8Data)
{
    // Check the arguments.
    ASSERT(UARTBaseValid(ui32Base));

    // Wait until space is available.
    while(HWREG(ui32Base + UART_O_FR) & UART_FR_TXFF)
    {
    }

    // Send the char.
    HWREG(ui32Base + UART_O_DR) = ui8Data;
}

我还尝试了 Rx 端、每500ms 定期发送一个字节、但未接收到任何数据。 标志会被置为有效一次、但在 DR 寄存器中仍然无法读取任何数据、之后在下一次迭代中会在 while 循环中捕获到该数据。  

//*****************************************************************************
//
// Waits for a character from the specified port
//
//*****************************************************************************
int32_t
UARTCharGet(uint32_t ui32Base)
{
    // Check the arguments.
    ASSERT(UARTBaseValid(ui32Base));

    // Wait until a char is available.
    while(HWREG(ui32Base + UART_O_FR) & UART_FR_RXFE)
    {
    }

    // Now get the character.
    return(HWREG(ui32Base + UART_O_DR));
}

我尝试启用 Rx 中断来识别读取 DR 寄存器的确切时间(TX 中断正常工作)。  但是、当中断启用时、程序会突然进入中断处理程序、而不会产生任何屏蔽中断。 我是否错过了任何设置、或者实施时是否出错? 感谢你的帮助

电源 我不打算使用任何 RTOS

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

    您好、Aldrin、

    您是否考虑使用 UART2 TI 驱动程序?  这将极大地缩短您的开发时间、并且 提供了一个无 RTOS uart2echo 示例项目。  否则、您可以在 TI 驱动程序源文件(如 UART2CC26X2.c/h)中搜索驱动程序库文档参考 、以更好地了解 UART 模块的工作实现方案。  例如、在初始化期间清除所有 UART 中断并创建 HWI 对象。

    此致、
    Ryan

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

    大家好、对于我的应用、由于 学术原因、我需要在尽可能接近裸机的位置执行这些函数。 这就是我在 SDK 中使用 driverlib 的原因。