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.

[参考译文] RTOS/cc2650:UART RX 中断

Guru**** 2589275 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/602925/rtos-cc2650-uart-rx-interruption

器件型号:CC2650

工具/软件:TI-RTOS

大家好,我想知道为什么 UART RX 中断不可用我是说真正的没有调用 UART_read()来监听端口,并且在所需的缓冲区满时触发它。

实时处理 UART RX 传入数据的唯一方法是使用外部引脚中断并在外部引脚中断上下文中执行任务。

知道这是一篇老文章,但是... 我必须在这里为另一个正在试验同样的东西说点东西

传入数据不存在 UART RX 事件的可能性有多大? 只要调用 UART_read()每当我们希望接收数据时,实际上就是在侦听端口,它不是真正的 UART 事件,它就会检查所需的缓冲区大小是否已满。 通过外部引脚中断处理 UART RX 事件可能是一种解决方案、但这并不是一种巧妙的解决方案

谢谢

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

    您好!

    您必须在回调模式下使用 UART 驱动程序、如上述帖子中所述。 在回调模式下、UART RX 中断以某种方式映射到 Rx 回调。 您可以通过调用 UART_read()来启用 RX。

    如果您事先不知道将接收多少字节、请按照 UARTCC26XX 驱动程序 API 文档 ("接收并返回部分"部分)中的说明启用 UARTCC26XX_CMD_RETURE_PARTI_ENABLE、此外、您还需要为 RX 设置 UART_MODE_CALLBACK。

    CC2650硬件在单字节后绝不会为您提供中断、遗憾的是、最小值为4字节。 RETURE_PARTIAL 将在接收到所需的字节数(当>= 4时)或在 RX 线路上的32位不活动周期之后从 UART_READ()返回(或在回调模式下发布回调)。  这是否足够实时?

    否则、您必须使用引脚中断来实现软件 UART。 您甚至可以使用传感器控制器来实现该目的。