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.

[参考译文] TMS320F280025C:使用 SCI、FIFO 时无法接收0x85

Guru**** 2524350 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1350651/tms320f280025c-0x85-cannot-be-received-when-using-sci-fifo

器件型号:TMS320F280025C

当我通过串行发送0x85时、它在我检查 FOFO 缓冲区时返回0 (通过 SCI_getRxFIFOStatus (* base))。

之后 我发送0x01、它通过 SCI_getRxFIFOStatus (* base)  返回2、当 SCI_readCharNonBlocking (* base)(读取时返回"0x85、0x01 ")。

为什么?

//////// 代码//////////////////

  INT I;

  内部 a;

  uint8_t getdatarx[16];

   A = SCI_getRxFIFOStatus (mySCI0_BASE);
  if (a){
       for (i=0;i<16;i++) getdatarx[i]= SCI_readCharNonBlocking (mySCI0_BASE);

   }

////////////////////////////////////////

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

    您好!

    您在调用 SCI_getInterruptStatus 时是否遇到任何 SCI 错误? 您应该在 ISR 中调用此函数。

    谢谢!

    卢克

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

    感谢您的回答。
    中断状态通常为"0x1C"。

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

    您好!

    您是否启用了 FIFO 模式? 我在我这边测试这个问题、并且在发送一个字节后调用 SCI_getRxFIFOStatus 时得到的状态为1。 单步执行代码时是否打开了内存浏览器或寄存器窗口?

    您能否共享您的配置代码以及您调用 SCI_getRxFIFOStatus 的代码? 当单步执行代码时还是仅在自由运行模式下才会出现此问题?

    谢谢!

    卢克

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

    感谢您的调查。

     

    确认了发送器侧的错误(@Tera Term)

    示波器直接检查波形、从而延长该测试的有效时间。

     

    很抱歉占用您的时间。

    我能够通过您的回答找到一个解决方案、即错误不会重现。

    非常感谢。

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

    很高兴您的问题得到解决、我将关闭此主题