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.

TMS320F28035 SCI和LIN都做串口通讯

Other Parts Discussed in Thread: CONTROLSUITE

 LIN和SCI当做两通道SCI可以同时使用吗?都用中断来做??我配置后同时使用有问题,单独使用可以正常通讯

  • 可以,这个问题论坛中也有问到:http://www.deyisupport.com.edgekey.net/question_answer/microcontrollers/c2000/f/56/t/19600.aspx

  • 您好!

    关于F28035的LIN用作SCI, 可以参考controlSUITE中以下评估板中的相关例程:

    C:\ti\controlSUITE\development_kits\HV_SOLAR_DC_AC_v1.1\SolarHv_DCAC_PiccoloB_Rev_02

  • 我用LIN做串口通讯已经调通了,但是SCI模块的串口中断无法接收数据,进入不了接收中断里,LIN是可以进入,接收数据正常

    配置如下

     SciaRegs.SCICCR.bit.SCICHAR= 7;             //8位数据长度
        SciaRegs.SCICCR.bit.ADDRIDLE_MODE= 0;       //异步IDLE-LINE模式
        SciaRegs.SCICCR.bit.STOPBITS = 0;           //禁止lookback
        SciaRegs.SCICCR.bit.LOOPBKENA = 0;          //禁止校验
        SciaRegs.SCICCR.bit.PARITYENA = 0;          //一位停止位
        SciaRegs.SCICCR.bit.STOPBITS = 0;          //使能接收
        SciaRegs.SCICTL1.bit.RXENA = 1;
        SciaRegs.SCICTL1.bit.TXENA= 1;          //使能发送
        SciaRegs.SCICTL1.bit.SLEEP = 0;         //睡眠方式禁止
        SciaRegs.SCICTL1.bit.TXWAKE = 0;
        SciaRegs.SCICTL1.bit.RXERRINTENA = 1;  //接收错误中断使能
        SciaRegs.SCICTL2.bit.TXINTENA =1;      //发送中断使能
        SciaRegs.SCICTL2.bit.RXBKINTENA =1;    //接收中断使能
        SciaRegs.SCIHBAUD =0;
        SciaRegs.SCILBAUD =15;
        SciaRegs.SCICTL1.bit.SWRESET = 1;

     

        PieCtrlRegs.PIEIER9.bit.INTx1 = 1;
        PieCtrlRegs.PIEIER9.bit.INTx2 = 1;   // Enable interrupts:
        PieCtrlRegs.PIEIER9.bit.INTx3=1;     // PIE Group 9, INT3
        PieCtrlRegs.PIEIER9.bit.INTx4=1;     // PIE Group 9, INT4
        PieVectTable.SCIRXINTA = &SCI_RXD_isr;
        PieVectTable.SCITXINTA = &SCI_TXD_isr;
        PieVectTable.LIN0INTA = &Lina_Level0_ISR;
        PieVectTable.LIN1INTA = &Lina_Level1_ISR;
        IER |= M_INT9;

    __interrupt void SCI_RXD_isr(void)//中断服务函数
    {
        Uint16 tmp;
        tmp = SciaRegs.SCIRXBUF.all;
         PieCtrlRegs.PIEACK.bit.ACK9 = 1;    //
    }

  • 可以发送不,接受中断有发生吗?debug看相应的标志位是否有置位。

  • 往txbuf中丢数据可以发送,IFR没有看到中断接收标志。我往Rxbuf丢数据没有,中断设置断点,仍然无法进入中断

  • 您好,

    我看了下您提到的那个例程,里面有这样一段代码

    EALLOW;
    LinaRegs.SCIFLR.bit.IDLE == 1;
    EDIS;

    这里是对IDLE 赋值吗?

  • 您好,能把您调通的LIN用作SCI通讯的代码发我一份吗,最近一直在调试28035的LIn用作SCI的通讯,调不通,谢谢,万分感激

x 出现错误。请重试或与管理员联系。