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.

[参考译文] TMS320F28335:SCI A 串行

Guru**** 2553260 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1335919/tms320f28335-sci-a-serial

器件型号:TMS320F28335

我如何通过 SCI_A 发送多于16个字节?

无 FIFO

请不要告诉我、请看一个示例、比如 ECHO_BACK。

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

    您好、Alexandre、

    实现 非 FIFO 模式 :  

    • 若要背靠背传输多个字节、 在向 TX 缓冲区写入字节以尝试传输数据之前、必须检查 TX 缓冲区中是否存在有效空间。
    • 为了检查发送缓冲区中是否有空间、可以设置一个中断来观察 TXRDY 位、以便在写入下一个字节之前检查前一次传输是否已完成。  
      • 请注意、在非 FIFO 模式下、若要产生第一个发送中断、需要 首先实际写入 TX 缓冲区(在 TXRDY 中断之外)才能开始发送。

    此致、

    艾里森

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

    感谢您的答复。
    我使用了很多微控制器、但毫无疑问、这是 UART 设置的最复杂的微控制器。

    我已经尝试了多种寄存器配置、但我只能发送16个字节。

    您能提供一个配置和字节发送的示例吗?

    提前感谢您。

    亚历山大

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

    您好、Alexandre、

    使用 SCI 模块肯定会有一些细微差别。 为了更好地帮助您、您能解释一下您一直在尝试什么吗? 您是否在使用中断? 何时以及如何在写入 TX 缓冲区之前检查 TX 缓冲区是否有空间? 您是否确定了数据线路的范围以帮助验证通信? 您还在尝试接收数据还是仅进行传输? 从更广泛的层面来看、您的系统/通信的目标是什么、以便我能够理解要求?

    如果您正在使用中断、那么参考 TRM 部分也会有所帮助、该部分概述了您在 图10-10中需要注意的中断标志。 SCI FIFO 中断标志和使能逻辑:

    此致、

    艾里森

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

    感谢您的回答。
    我需要的是通过 UART 发送一个256字节的块。
    没有中断、只是发送...
    void scia_xmit (int A)
    {
    while (SciaRegs.SCICTL2.bit.TXRDY =>= 0){}
    SciaRegs。 SCITXBUF=;

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


    WD_Disable (void);
    GPIO_Setup (void);//GPIO28和 GPIO29
    SCI_SETUP (void ();//无中断
    void XTM (int);//为 SCI-A 发送数据

    uint16 sdataB[256];// data
    INT I;
    int main (void){


    WD_Disable ();
    GPIO_Setup();
    SCI_Setup();                  //无中断

    for (I=0;I<256;I++){
    XTM (sdataB[I]);


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

    您好、Alexandre、

    感谢更新-您仍然无法传输超过16个字节( 唯一的问题是、就像在中那样、 正在传输正确的数据、对吗?)? 您能否确保您的配置没有 FIFO 模式? 请注意、还有一个有用的常见问题解答可用于再次检查您的问题和检查 SCI 设置过程: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1031947/faq-my-c2000-sci-is-not-transmitting-and-or-receiving-data-correctly-how-do-i-fix-this。 您是否以其中一个 SCI 示例作为参考并为您的应用程序更改了代码?

    此致、

    艾里森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Allison、
    
    在观看了很多视频并阅读了很多有关配置 TMS320F28335的手册后、我设法使 echo_back 示例起作用。
    感谢您的支持。
    
    此致、
    
    Alexandre Marques