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.

[参考译文] CC3220SF:9位 UART

Guru**** 2577385 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/825117/cc3220sf-9bit-uart

器件型号:CC3220SF

您好!

我想使用 cc3220通过 MDB 端口连接自动售货机。

为此、我需要实现9位 UART 协议。 我该怎么做?

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

    您好、Rustem、

    CC3220支持多达8个数据位。 您是否能够将奇偶校验用作您的第9位?

    有关 UART 驱动程序 的详细信息、请参阅 CC3220技术参考手册:http://www.ti.com/lit/swru465

    此致、

    Sarah

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

    您好!

    感谢您的回答! 您能否给我指出示例代码、该代码显示了对奇偶校验位的访问权限? 我无法看到此函数(仅 uartRad())。 或者、我只能在寄存器级别访问奇偶校验位?

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

    您好、Rustem、

    您应该能够使用记忆棒奇偶校验位来选择一个或零。 您必须在您的应用中处理此逻辑。

    TI 驱动程序允许您设置奇偶校验、但只有在打开 UART 外设时才能设置该奇偶校验。 如果您要发送大量数据、打开和关闭 UART 外设可能会产生大量开销。

    您还可以使用针对 UART 的 driverlib 实现、或直接访问 UART 记忆棒奇偶校验寄存器。 (参见 TRM 中的 UARTLCRH 寄存器 SPS 域。) 我们在 CC32xx SDK 中不提供 driverlib 示例、但您可以在 source/ti/devices/cc32xx/driverlib 中找到可用的 API。

    此致、

    Sarah

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

    您好!

    那么、我无法通过标准 UART 库访问奇偶校验位、我需要深入了解寄存器级别吗?  

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

    您好、Rustem、

    正确、标准 TI 驱动程序库不适合此应用。 我建议使用 driverlib 实现。 在每个 UARTCharPut()之前,您应该能够根据需要调用 UARTParityModeSet(),或者您可以直接访问该寄存器。

    此致、

    Sarah

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

    您好!

    这对 Tx 很有用、但如何将其用于 Rx?

    2.请将我指向使用 UARTLCRH 的驱动程序库中的确切文件? 我找不到

     

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

    您好!

    为了确定 RX 期间奇偶校验位的状态、可以使用 UARTDR 寄存器中的 PE (UART 奇偶校验错误)标志。 在 RX 之前、您可以设置一种类型的奇偶校验。 接收到字节后、您可以检查 PE 位并根据其他字节确定奇偶校验位是否设置为0或1。

    1月

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

    您好、Rustem、

    Jan 对你的第一个问题是正确的。

    driverlib 实现位于 source/ti/devices/cc32xx/driverlib/uart.c 中、它使用 来自 source/ti/devices/cc32xx/inc/hw_uart.h 的 UART_O_LCRH 等定义 您可以看到偏移地址将与 TRM 中列出的寄存器匹配。

    此致、

    Sarah