主题中讨论的其他器件:CC3220SF
我们有一款具有 CC3220 WiFi 模块的产品、它从 UART1发送数据、然后等待响应。
我的前任编写了一些代码、这些代码读取 UART、但会在没有响应时阻止并且不返回(UART_readPolling (uart1Handle、&cChar、1); //获取下一个字符)。
当然、在现实世界中、另一个控制器(MSP430)将响应写回 CC3220可能无法发送响应。 (现实世界是每40、000个通信事件中有1个事件、或1个事件太多)。
我实现了一个从 CC3220到另一个控制器的写入、而另一个控制器对此没有响应。 这让我可以轻松地重复阻止读取的情况。
我希望我可以将读取超时 时间从 readTimeout = UART_WAIT_FOREVER 设置为如下所示的值:
uartParams.readTimeout = 10; // FLE 猜测在 MS 中的某个超时。 20190827
它将返回 NULL 作为字符、甚至是最后一个字符。 但是、当我运行代码时、它仍然滞留在等待 UART 读取数据上。 读取 SWRU465第6.2.3.3节我不清楚在超时发生时等待 UART 读取的代码上的程序流会发生什么情况。 我看到有关 ISR 的指令、可能需要执行这些指令来清除标志、以便 UART_readPolling 上的程序流将恢复。
我很幸运地搜索了 SDK 中的 UART ISR 示例。 因此、我不确定从哪里开始。
希望获得此类 UART ISR 的示例或概述。 我从未为 ISR 编写过 TI 代码、而且模板/示例面临着陡峭的学习曲线。 供参考、我使用 CCS8已有一年了、现在我从未有过原因、也从未学习过如何检查寄存器中的中断状态位。
谢谢、
