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.

[参考译文] LAUNCHXL-F28379D:LAUNCHXL-F28379D SCI 示例

Guru**** 2534430 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/710287/launchxl-f28379d-launchxl-f28379d-sci-example

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件: C2000WARE

你好,我的朋友。。

我的项目是控制套件中的 LAUNCHXL-F28379D 示例 sci_echoback_cpu01

但该项目不起作用

此项目 scia 设置

GPIO_SetupPinMux (28、GPIO_MUX_CPU1、1);
GPIO_SetupPinOptions (28、GPIO_INPUT、GPIO_PushPull);
GPIO_SetupPinMux (29、GPIO_MUX_CPU1、1);
GPIO_SetupPinOptions (29、GPIO_OUTPUT、GPIO_异 步);

我使用 scib 并更改此代码

GPIO_SetupPinMux (19、GPIO_MUX_CPU1、2);  
GPIO_SetupPinOptions (19、GPIO_INPUT、GPIO_PushPull);
GPIO_SetupPinMux (18、GPIO_MUX_CPU1、2);
GPIO_SetupPinOptions (18、GPIO_OUTPUT、GPIO_异 步);


我只是更改了这个部分、其余部分没有更改。

我通过串行通信程序检查了传输数据、字符已损坏。

我没有收到它并在调试模式下检查它。

//等待 inc 字符 
while (SciaRegs.SCIFFRX.bit.RXFFST = 0){}//等待 XRDY =1为空状态
这里等待的时间是无限的。 

我不知道问题是什么。 请询问是否有人知道此问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    本示例中的器件接收字符并将其回传到主机。

    您可能未正确连接到器件程序中指定的 SCI TX 和 RX 引脚。 因此、器件未接收字符。

    希望这对您有所帮助。

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

    你好 Sal?

    感谢你的答复。

    我的串行电缆2 Rx、3 TX

    DSP GPIO 引脚   3-Rx (gpio19)、4-TX (gpio18)

    我连接了2-4、3-3

    我认为连接正确。

    您能告诉我您是否有示例文件?

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

    您需要在 GPIO 多路复用器中为 SCI TX 和 SCI RX 配置这两个 GPIO。 您可以在 C2000Ware 中提供的示例中看到这一操作。 现在、它们被配置为输入 GPIO 和输出 GPIO。 它们需要配置为特定于 SCI 的引脚、并正确多路复用为 SCI。

    希望这对您有所帮助。

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

    你(们)好,SAL。

    我找到 LAUNCHXL-F28379D 概述用户指南文档  

    第11页如果您在表5中将 gpio19和18设置为 mux 2、

    我将 SCITXDB 和 SCITXDB 连接到串行电缆以及 Rx 和 TX。

    我根据您在 C2000WARE 提供的示例文件中设置 GPIO 的方式进行如下设置。

    GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0;//启用 GPIO28上的上拉

    GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3;//异步输入

    GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1;// GPIO28 = SCIRXDA

    GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0;//启用 GPIO29上的上拉

    GpioCtrlRegs.GPAMUX2.bit.GPIO18=1;// GPIO29 = SCITXDA

    我不知道 SCI 设置、因为我将它们设置为初始小、但不发送或接收任何内容。 如果有其他方法、请告诉我。

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

    GPIO 18和19是 SCIB 模块的 SCI 引脚。 不是 SCIA 模块。

    确保您正在配置 SCIB。

    请参阅数据表和标有信号说明的表。

    此致、

    SAL

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

    你好 Sal?

    我知道 gpio19、18 sci B 频道。

    它只是一个示例

    您有 LaunchPad 吗?

    这是我的来源... 这是 TI 产品示例。

    仅修改 sci_init 和 GPIO 设置。

    我每天都在查看数据表... 我不知道什么不起作用、  

    作者:Sal

    //######################################################################################################################
    //
    //文件:example_2837xDSci_Echoback.c
    //
    //标题:SCI 回送。
    //
    //! addtogroup cpu01_example_list
    //!

    SCI 回送(sci_echoback)


    //!
    //! 此测试通过 SCI-A 端口接收和回波数据。
    //!
    //! PC 应用程序“超级终端”或其它终端
    //! 例如"putty"可用于查看来自 SCI 和的数据
    //! 以向 SCI 发送信息。 接收到的字符
    //! 将被发送回主机。
    //!
    //! b 正在运行\b 应用程序
    //! -#配置超级终端或其它终端、如 PuTTy:
    //!
    //! 对于超级终端、您可以使用随附的超级终端配置
    //! 文件 SCI_96.HT。
    //! 超级终端中加载此配置
    //! -#打开超级终端
    //! -#转至文件->打开
    //! -#浏览至项目位置和
    //! 选择 SCI_96.HT 文件。
    //! -#检查 COM 端口。
    //! 当前已为 COM1设置配置文件。
    //! 如果不正确,请断开连接(呼叫->断开连接)
    //! 打开"File-Properties"对话框并选择正确的 COM 端口。
    //! -#连接超级终端呼叫->呼叫
    //! 然后启动2837xD SCI 回送程序执行。
    //! -#该程序将打印一条问候语,然后请您回答
    //! 输入一个字符、它将回显到超级终端。
    //!
    //! 注意:如果无法打开.HT 文件,或者您正在使用
    //! 另一个终端、您可以使用以下设置打开 COM 端口
    //! -找到正确的 COM 端口
    //! -每秒位数= 9600
    //! -日期位= 8
    //! -奇偶校验=无
    //! -停止位= 1
    //! -硬件控制=无
    //!
    //! b 监视\b 变量\n
    //! - LoopCount -发送的字符数
    //!
    //! b 外部连接\n
    //! 通过收发器和电缆将 SCI-A 端口连接到 PC。
    //! - GPIO28为 SCI_A-RXD (连接到串行 DB9电缆的引脚3、PC-TX)
    //! - GPIO29为 SCI_A-TXD (通过串行 DB9电缆连接到 PIN2、PC-RX)
    //!
    //
    //######################################################################################################################
    //$TI 版本:F2837xD 支持库 V210 $
    //$Release Date:Tue Nov1 14:46:15 CDT 2016 $
    //版权所有:版权所有(C) 2013-2016 Texas Instruments Incorporated -
    // http://www.ti.com/ 保留所有权利$
    //######################################################################################################################

    //
    //包含的文件
    //
    #include "F28x_Project.h"

    //
    //全局
    //
    uint16环计数;

    //
    //函数原型
    //
    void scib_echoback_init (void);
    void scib_fifo_init (void);
    void scib_xmit (int a);
    void scib_msg (char * msg);

    //
    //主函
    //
    void main (void)

    uint16 ReceivedChar;
    char *msg;

    //
    //步骤1. 初始化系统控制:
    // PLL、安全装置、启用外设时钟
    //此示例函数位于 F2837xD_SYSCTRL.c 文件中。
    //
    InitSysCtrl();

    //
    //步骤2. 初始化 GPIO:
    //此示例函数位于 F2837xD_GPIO.c 文件和中
    //说明了如何将 GPIO 设置为其默认状态。
    //
    InitGpio();

    //
    //对于这个示例、只初始化针对 SCI-A 端口的引脚。
    // GPIO_SetupPinMux ()-设置 GPxMUX1/2和 GPyMUX1/2寄存器位
    // GPIO_SetupPinOptions ()-设置 GPIO 的方向和配置
    //这些函数可在 F2837xD_GPIO.c 文件中找到。
    //
    // GPIO_SetupPinMux (19、GPIO_MUX_CPU1、2);
    // GPIO_SetupPinOptions (19、GPIO_INPUT、GPIO_PULLUP);
    // GPIO_SetupPinMux (18、GPIO_MUX_CPU1、2);
    // GPIO_SetupPinOptions (18、GPIO_output、GPIO_Async);

    GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0;//启用 GPIO28上的上拉
    GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3;//异步输入
    GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 2;// GPIO28 = SCIRXDA
    GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0;//启用 GPIO29上的上拉
    GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 2;// GPIO29 = SCITXDA

    //
    //步骤3. 清除所有_interrupts 并初始化 PIE 矢量表:
    //禁用 CPU __interrupts
    //
    Dint;

    //
    //将 PIE 控制寄存器初始化为默认状态。
    //默认状态为禁用所有 PIE __interrupts 和标志
    //被清除。
    //此函数位于 F2837xD_PIECTRL.c 文件中。
    //
    InitPieCtrl();

    //
    //禁用 CPU __interrupts 并清除所有 CPU __interrupt 标志:
    //
    IER = 0x0000;
    IFR = 0x0000;

    //
    //使用指向 shell 中断的指针初始化 PIE 矢量表
    //服务例程(ISR)。
    //这将填充整个表,即使是__interrupt
    //在本例中未使用。 这对于调试很有用。
    //可以在 F2837xD_DefaultIsr.c 中找到 shell ISR 例程
    //此函数可在 F2837xD_PieVect.c 中找到
    //
    InitPieVectTable();

    //
    //步骤4. 用户特定代码:
    //
    LoopCount = 0;

    scib_fifo_init();//初始化 SCI FIFO
    scib_echoback_init ();//初始化用于 echoback 的 SCI


    MSG ="\r\n 您将输入一个字符,DSP 将回显它! \n\n";
    scib_msg (msg);

    for (;;)

    MSG ="\r\n 输入字符:\0";
    scib_msg (msg);

    //
    //等待 inc 字符
    //
    while (ScibRegs.SCIFFRX.bit.RXFFST ==0){}//等待空状态

    //
    //获取字符
    //
    ReceivedChar = ScibRegs.SCIRXBUF.ALL;

    //
    //回显字符
    //
    MSG ="您已发送:\0";
    scib_msg (msg);
    scib_xmit (ReceivedChar);

    LoopCount++;

    //
    // scib_echoback_init -测试1、scib DLB、8位字、波特率0x000F、
    //默认,1个停止位,无奇偶校验
    //
    void scib_echoback_init ()

    //
    //注意:scib 外设的时钟被打开
    //在 InitSysCtrl()函数中
    //

    ScibRegs.SCICCR.all = 0x0007;// 1停止位,无环回
    //无奇偶校验,8个字符位,
    //异步模式,空闲线协议
    ScibRegs.SCICTL1.all = 0x0003;//启用 TX、RX、内部 SCICLK、
    //禁用 RX ERR、睡眠、TXWAKE
    ScibRegs.SCICTL2.all = 0x0003;
    ScibRegs.SCICTL2.bit.TXINTENA=1;
    ScibRegs.SCICTL2.bit.RXBKINTENA=1;

    //
    // scib 为9600波特
    //@LSPCLK = 50MHz (200MHz SYSCLK) HBAUD = 0x02且 LBAUD = 0x8B。
    //@LSPCLK = 30MHz (120MHz SYSCLK) HBAUD = 0x01且 LBAUD = 0x86。
    //
    ScibRegs.SCIHBAUD.ALL = 0x0002;
    ScibRegs.SCILBAUD.ALL = 0x008B;

    ScibRegs.SCICTL1.ALL = 0x0023;//从复位中撤回 SCI

    //
    // scib_xmit -从 SCI 发送一个字符
    //
    空 scib_xmit (int a)

    while (ScibRegs.SCIFFTX.bit.TXFFST!= 0){}
    ScibRegs.SCITXBUF.ALL =A;

    //
    // scib_msg -通过 scib 传输消息
    //
    void scib_msg (char * msg)

    int i;
    I = 0;
    while (msg[i]!='\0')

    scib_xmit (msg[i]);
    i++;

    //
    // scib_fifo_init -初始化 SCI FIFO
    //
    void scib_fifo_init()

    SCIFFTX.ALL = 0xE040;
    ScibRegs.SCIFFRX.ALL = 0x2044;
    ScibRegs.SCIFFCT.all = 0x0;

    //
    //文件结束
    //

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以使 SCIB 在启用环回的情况下工作? 在 SCIB 中启用环回时、您是否可以获得发送和接收的字符?

    这将是调试它的下一步。 如果回送正常、则可能是 GPIO 配置或外部连接出现问题。

    希望这对您有所帮助!
    SAL