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.

[参考译文] CC3235SF:如何在 UART 上发送&'break'条件?

Guru**** 2482105 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1333284/cc3235sf-how-can-i-send-the-break-condition-on-a-uart

器件型号:CC3235SF

软件开发套件中的 UART2 API 似乎无法发送中断条件-我需要这样做。

是否有实现这一点的方法?

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

    至少 UART 器件的底层存在发送 UART 中断的实现方式。

    请参见 /source/ti/devices/cc32xx/driverlib/.下的 UARTBreakCtl ()

    但是、我没有看到从上层对它的直接调用、因此可能它已损坏。

    它在 UART0上是否工作?

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

    谢谢-我没有发现这一点。  有时很难看到树木的木头!

    一旦我弄清楚如何发现基地址(我猜我可以从 UART 对象中取出)、我就会看到我是否可以让它对我有效。

    非常感谢您的迅速响应。

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

    基本来说、我们有 TI 驱动程序层、用于适应特定于平台的驱动程序。 我提到过的内容是特定于器件的。

    您还可以在 TRM https://www.ti.com/lit/ug/swru543a/swru543a.pdf?上看到整个映射以及对任何外设的更多了解 ts = 1709798574255&ref_url=https%253A%252F%252Fwww.google.com%252F

    具体而言、表6-8将会显示0x0001位置的 BRK 位。

    该 UARTLCRH 寄存器的偏移量为 2Ch (在代码中、它在 UART_O_LCRH 定义下)。

    构造完整地址的行是'HWREG (ulBase + UART_O_LCRH)'。

    什洛米

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

    谢谢你。  我已通过检验确定 UART2_open 返回的句柄是一个指向结构的指针、其中一个元素是另一个结构、称为 hwAttrs、而且 hwAttrs 的第一个元素是'baseAdd'、这为我提供了一种简单的获取方式。

    在我的用例中、我当时尝试使用"break"来唤醒连接的 AVR 微控制器、但最终我发现我可以通过编程 AVR 进入睡眠状态并禁用 UART 来实现同样出色的功能、 但是、在其 Rx 线路(CC3235的 Tx 线路)上设置了输入感应更改中断、并且仅仅发送一个单个 NUL 字符、然后在足够的时间内让 AVR 唤醒(大约2ms)"usSleep ()"()

    当 AVR 收到这个中断时、它会禁用该中断、并重新配置 UART、然后关闭。  至少比为我发送定时中断更容易一些、并避免容易受到 C3235 SDK 架构未来可能发生的更改的影响。