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.

TMS570LC4357: 关于LINRX/LINTX作为通用的GIO的设置问题

Part Number: TMS570LC4357
Other Parts Discussed in Thread: HALCOGEN

想实现内容:将LIN1RX和LIN1TX均作为输出管脚。

以下为初始化过程:

            linREG1->GCR0 = 1;     //让LIN处于不复位态

            gioSetDirection(linPORT1,0x06U);//根据此表格,将此TX和RX管脚都用做GIO的输出态
            gioSetPort(linPORT1,0x0);//使其输出为0。

                      将LIN1RX和LIN1TX作为输入管脚。
linREG1->GCR0 = 1;     //让LIN处于不复位态

gioSetDirection(linPORT1,0x00U);//根据此表格,将此TX和RX管脚都用做GIO的输入态

 gioSetPort(linPORT1,0x0);//使其输出为0。
gioGetPort(linPORT1);//采集当前状态。(实际采集到的值是6,即两个均为高电平。)
随后在运行过程中,对输出管脚无论设置什么,输入管脚均读到的值为两个高电平。
  • 对于题目的补充,我直接将一个CPU的输出管脚连至另一个CPU的输入管脚。

    以及,我该如何初始化,才可以实现拉低/拉高引脚的功能

  • 您好,我向资深工程师咨询后回复您

  • 您好,您想在LIN或者GIO模式下使用这些引脚吗?

    您这些管脚上的应用是什么?您想用LIN协议传输一些数据呢还是只是想用GIO传输一些状态?

  • 您好,目前的想法是用GIO传输3种状态,故想使用这两个管脚作为GIO使用。

  • 您的代码并不是正确的配置过程,因为将LIN管脚作为GIO管脚使用时不应该在这里使用GIO功能。请参照以下步骤配置:

    (因为手头没有TMS570LC,我们的工程师在RM46板上对以下步骤进行了验证,但它们的过程是相同的

    1.打开HALCoGen

    2.使能您想要用作GIO的管脚的LIN driver

    3.然后打开对应的LIN选项卡并按如下所示配置

    上述配置会将 LIN 引脚配置为 GIO,并将它们作为启用上拉的输出引脚

    4.完成上述修改后,从 HALCoGen 生成代码

    5.使用 CCS 创建一个新项目

    6.现在在这个新项目中调用 LinInit 函数如下

    7.之后,您可以使用LIN的PIO3寄存器来对上面的GIO置位或清除操作

    我附上我们工程师的项目作为参考,您可以使用它并进行相同的修改。

    注意:我们使用的控制器中只有一个LIN,但您使用的控制器应该有两个,请注意这一点。

    RM46_LIN_GIO_TEST.zip

  • 感谢您的解答,我将在尝试后再次恢复您