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.

[参考译文] TMS320F2800154-Q1:2800154 lin 配置、当出现位错误时、似乎是一个无法清除数据缓冲区的错误

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1351401/tms320f2800154-q1-2800154-lin-config-it-seems-a-bug-that-can-not-clear-data-buffer-when-bit-error

器件型号:TMS320F2800154-Q1

您好:

我有一个问题,打扰我很长时间。

主机请求3C,当3D 响应时,干扰帧在 byte1停止位,它触发一个位错误,它应在响应中显示错误位

但事实上、在 处理 BE 错误中断后 、 SCIFLR 中的 BUSY 位总是置1、它导致第一帧异常、第二帧正常  

如何清除  SCIFLR 中的 BUSY 位 ?

如何清除发送缓冲区或接收缓冲区?

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

    您好!

    要清除 SCIFLR 寄存器中的 BUSY 位、必须执行以下操作之一:

    您是否认为在接收到下一个同步中断后、BE 标志仍被设置?

    由于在写入消息 ID 之前实际上不会传输数据、因此只要清除 LINTD0和 LINTD1寄存器、就可以在之前的任何时间清除/覆盖发送缓冲区。 设置 LINID 后、LIN 模块将立即开始从 TD 缓冲器的每个字段传输数据。 对于 RX 缓冲区、LINRD0和 LINRD1寄存器是只读的。 因此、应该无法清除其值。 但是、最好的方法是读取数据并在需要时丢弃。 如果这能回答您的问题、请告诉我。

    此致、

    德拉尼