工具/软件:
您好、
我们正在成功使用 CoreSDK 8.30.02.00和 UART2与我们 CC1312R7的外设进行通信。 我们使用`UART2_Mode_Blocking`写入。 但是、如果外设断开连接、使 TX、RX、CTS 和 RTS 引脚保持悬空、对`UART2_CLOSE ()`的调用将挂起、永远不会返回。 研究一个位后、发现这是对 `UART2_writeCancel ()`的内部调用正在挂起-我尚未对其进行调试、但我假设这是 UART2.c:824处 等待 活动 TX 完成的 while 循环。 我本来不希望出现这种问题、因为我们对写入使用阻塞模式。
在 TX:
- 初始化 UART (writeMode = UART2_Mode_blocking)
- 好的
- TX 6字节使用 UART2_writeTimeout ()
- 令人惊讶的是、这始终返回 UART2_STATUS_SUCCESS (0)
- UART2_writeCancel ()
- 好的
- UART2_CLOSE ()
- 好的
再添加一个 TX 以引发问题:
- 初始化 UART (writeMode = UART2_Mode_blocking)
- 好的
- TX 6字节使用 UART2_writeTimeout ()
- 令人惊讶的是、这总是会返回成功
- TX 6字节使用 UART2_writeTimeout ()
- 采用 UART2_STATUS_ETIMEOUT (-9)时按预期失败
- UART2_writeCancel ()
- 挂起
这是预料之中的吗?
此致、
Andreas