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.

[参考译文] TMS320F280025:LIN 作为 UART 示例代码

Guru**** 2465890 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/923556/tms320f280025-lin-as-uart-examples-codes

器件型号:TMS320F280025
主题中讨论的其他器件:C2000WARE

尊敬的香榭丽舍

我向我们的客户提出这一问题。

在 C2000ware 的 F28002x 上似乎没有 LIN 的示例代码。

如果是、为什么 C2000ware 上没有 LIN 示例代码?

据我了解、F28002x LIN 应该与 F28004x LIN 相同。

有 F28004x LIN 示例代码、但没有 F28002x 示例代码。

用户能否参阅 F28004x LIN 示例代码和 driverlib?

是否有任何疑虑?

由于 F28002x 只有一个 SCI、因此如果用户需要多个 SCI/UART、将 LIN 用作 UART 示例代码至关重要。

黄维恩

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

    您好、Wayne、

    目前、客户可以参考 F28004x LIN 示例代码。  

    这些示例需要移植到 F28002x、并且大部分可能会在 C2000Ware 的未来版本中完成

    此致

    Siddharth

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

    尊敬的 Siddharth:

    您是否会向我们展示他们将 F28004x LIN 示例代码移植到 F28002x 示例代码时需要注意的事项?

    考虑到 LIN 模块是相同的、如果非常直观、我们会感到困惑、为什么现有的 C2000ware 除了此 LIN 示例外具有外设。

    黄维恩

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

    尊敬的 Siddharth:

    我是 Wayne 提到的客户。 以下是我的配置。 只要发送数据、它就会继续进入中断状态。 如何解决此问题?

    无效
    InitLina (空)

    EALLOW;

    LinaRegs.SCIGCR0.bit.RESET = 0;//进入复位
    LinaRegs.SCIGCR0.bit.reset = 1;//out of reset

    LinaRegs.SCIGCR1.bit.SWnRST = 0;//into 软件复位

    //
    // SCI 配置
    //
    LinaRegs.SCIGCR1.bit.COMMMODE = 0;//Idle-Line 模式
    LinaRegs.SCIGCR1.bit.TIMINGMODE = 1;//异步时序
    LinaRegs.SCIGCR1.bit.PARITYENA=0;//无奇偶校验
    LinaRegs.SCIGCR1.bit.parity = 0;//奇偶校验
    LinaRegs.SCIGCR1.bit.STOP = 0;//一个停止位
    LinaRegs.SCIGCR1.bit.CLK_MASTER = 1;//启用 SCI 时钟
    LinaRegs.SCIGCR1.bit.LINMODE = 0;//SCI 模式
    LinaRegs.SCIGCR1.bit.SLEEP = 0;//确保退出睡眠模式
    LinaRegs.SCIGCR1.bit.BUFMODE = 0;//缓冲模式
    LinaRegs.SCIGCR1.bit.loopback = 0;//内部回送
    LinaRegs.SCIGCR1.bit.CONT=1;//暂停时继续
    LinaRegs.SCIGCR1.bit.RXENA=1;//启用 RX
    LinaRegs.SCIGCR1.bit.TXENA=1;//使能 TX

    //
    //确保禁用 IODFT
    //
    LinaRegs.IODFTCTRL.bit.IODFENA = 0x0;

    //
    //设置传输长度
    //
    LinaRegs.SCIFORMAT.bit.char = 7;//8位
    LinaRegs.SCIFORMAT.bit.length = 0;//八个字节

    //
    //设置波特率
    //
    LinaRegs.BRSR.bit.SCI_LIN_PSL = 324;对于 SYSCLKOUT = 60MHz、//19.2kbps
    LinaRegs.BRSR.bit.M = 8;

    LinaRegs.SCIPIO0.bit.RXFUNC = 1;
    LinaRegs.SCIPIO0.bit.TXFUNC = 1;

    //
    //启用中断
    //
    LinaRegs.SCISETINT.BIT.SETRXINT = 1;//启用 RX 中断
    LinaRegs.SCISETINT.BIT.SETTXINT = 1;

    LinaRegs.LIN_GLB_INT_EN.BINT0_EN = 1;
    LinaRegs.LIN_GLB_INT_EN.BIND1_EN = 1;

    //
    //设置中断优先级
    //将所有中断的中断级别设置为 LVL 0
    //
    LinaRegs.SCICLEARINTLVL.ALL = 0xFF0023D2U;

    LinaRegs.SCIGCR1.bit.SWnRST = 1;//解除软件复位

    //
    //禁用对受保护寄存器的写入
    //
    EDIS;

    中断空 Lina_Level0_ISR (空)

    uint32 LinL0IntVect;

    LinL0IntVect = LinaRegs.SCIINTVECT0.ALL;

    //接收中断
    if (LinL0IntVect =值为11时代表有数据接收到)//k Ω//QTL

    // SCI_RXD_ISR ();

    //发送中断
    否则 if (LinL0IntVect = 12)

    // SCI_TXD_ISR ();

    GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;

    LinaRegs.SCIFLR.bit.IDTXFLAG = 1;
    LinaRegs.LIN_GLB_INT_CLR.bit.INT0_FLG_CLR = 1;
    PieCtrlRegs.PIEACk.bit.ACK8 = 1;

    此致

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

    您好、Wayne、

    客户已获得移植到 F28002x 的示例。  是否有客户提出的任何其他问题?

    此致

    Siddharth

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

    尊敬的 Siddharth:

    非常感谢您的支持。

    我们可以解决此问题。

    黄维恩