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.

MAX485 28035的SCI通信问题



下面是我的部分代码(发送用的是查询,接收用的是中断,标准SCI模式),程序是这样的,串口调试助手先发送数据,DSP收到数据返回给调试助手,但是DSP能收到数据,但是DSP发送不成功。

_interrupt void sciaRxFifoIsr(void)
{

    rdata[i]=SciaRegs.SCIRXBUF.all;//读取接收到的数据

    scia_send_en();//发送使能
    DELAY_US(10);
    SciaRegs.SCITXBUF=rdata[i];//发送接收到的数据
    while(SciaRegs.SCICTL2.bit.TXRDY!=1){}//等待发送完毕
    i++;
    if(i==10){i=0;}

 RS485RX_EN() ;//接收使能

    PieCtrlRegs.PIEACK.all|=0x100;       // Issue PIE ack

}

void scia_fifo_init()
{
   SciaRegs.SCICCR.all =0x0007;   // 1 stop bit,  No loopback
                                  // No parity,8 char bits,
                                  // async mode, idle-line protocol
   SciaRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,
                                  // Disable RX ERR, SLEEP, TXWAKE
   SciaRegs.SCICTL2.bit.TXINTENA =1;
   SciaRegs.SCICTL2.bit.RXBKINTENA =1;
   SciaRegs.SCIHBAUD = 0x0000;
   SciaRegs.SCILBAUD = 0x00C2;
   SciaRegs.SCICCR.bit.LOOPBKENA =0; // Disable loop back
/*
   SciaRegs.SCIFFTX.all=0xC022;
   SciaRegs.SCIFFRX.all=0x0021;
   SciaRegs.SCIFFCT.all=0x00;
*/
   SciaRegs.SCICTL1.all =0x0023;     // Relinquish SCI from Reset
/*
   SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
   SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
*/
}

//发送使能
void scia_send_en()
{
 EALLOW;
 GpioCtrlRegs.GPAMUX1.bit.GPIO14 =0;//普通IO口
 GpioCtrlRegs.GPADIR.bit.GPIO14 =1;//方向输出
 EDIS;
    GpioDataRegs.GPASET.bit.GPIO14 =1;//高电平

}