器件型号: LAUNCHXL-F280039C
您好团队:
使用 driverlib 阻塞 或非 FIFO 模式对 SCIA 接收器进行数天测试、快速和慢速数据速率 (115200 - 1200)。 出现相同的结果、在中断模式下、没有数据从 FIFO 弹出到接收缓冲区、或者在两个启动焊盘 (TXD) 之间的握手中针对选择数据字(“F")“)、(“L")“)、(“H")“)轮询 RX 缓冲区并将其放入 RXD。
然而、对于任何溢出、RX 缓冲器 8 位寄存器将被清零。 当针对任何传输方法进行配置后、C 代码无法从 SPIA RX 缓冲区或 FIFFO 中挑选十六进制或 ASCII 字。 似乎有某种勘误表、循环的 C 代码都无法使用任何方法将 FIFO 递增到 RX 缓冲区中。 当前门有数据包时、UART RX 接收器溢出、之后中断才被启用;当波特率高速时、在没有填充级别下可以控制它。
RX FIFO 设计从 10 位 x49c 更改为 8 位 x39c、并且仍然存在各种 OVF 问题。 我们无法禁用 FIFO 以停止 OVF 进入 RX 接收器问题、以及 MCU 类中断模式下明显的器件故障或轮询 SCIA RXBUF。 是的、有清除 OVF 的权变措施、但禁用 FIFO 或中断的简单方法不会在 POR 时初始化接收寄存器之前或 POR 后(如果来自外部世界的数据包信号)阻止接收寄存器溢出!
您能否解释一下为什么简单的 for 循环在没有显式分块、轮询 x39c 或中断 RXFIFO 级别的情况下、会弹出来自 x49c 器件中 RXFIFO 的 RX 接收器、而无法解析或填充 C 数组缓冲区? 我们减慢了数据包速率 1200 波特、1 秒间隔(小于 12 字节)并且 RX 接收器 CCS 调试显示数据存在、但 C 代码 (char) 或 (uint16_t) 在这两种类型缓冲器的数据数组中多次堆叠相同的字节? 供参考:scib x39c 是 TXFFIFO ISR 用另一个 21µs ISR 写入嵌套循环、并在同一上下文中正常工作。 奇怪的是、SCIA 阻塞 FIFO 或 NonFIFO 模式会减慢 SCIB TXFIFO ISR、因此这些阻塞模式无法在 SCIA 中使用。
因此、我们轮询 SCIA FIFO 模式接收缓冲区:十六进制捕获还有来自主机的另外两次数据包传输、以下代码嗅探中未显示。
为什么循环在读取 RX 接收缓冲区后不能 POP FIFO?





