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.

the sci of the 28035

Dear aimee
        hello ,I have a question when I use the SCI of the 28035;I can sent data to the PC, but I can't receive any data from the PC.I use the example of the sci loopback_in;there is my code of setting SCI;
   void main(void)
{
   Uint16 i;
   flag_tci=0;
   flag_rci=0;
   tnum=0;
   rnum=0;
   InitSysCtrl();
   InitSciGpio();
   DINT;
   InitPieCtrl();
   IER = 0x0000;
   IFR = 0x0000;
   InitPieVectTable();
   EALLOW;  // This is needed to write to EALLOW protected registers
   PieVectTable.SCIRXINTA = &sciaRxFifoIsr;
   PieVectTable.SCITXINTA = &sciaTxFifoIsr;
   EDIS;   // This is needed to disable write to EALLOW protected registers
   scia_fifo_init();  // Init SCI-A
   for(i=0;i<8;i++)
   {
     sdataA[i]=(2*i+1);
   }
   //rdata_pointA = sdataA[0];
   PieCtrlRegs.PIECTRL.bit.ENPIE = 1;   // Enable the PIE block
   PieCtrlRegs.PIEIER9.bit.INTx1=1;     // PIE Group 9, INT1
   PieCtrlRegs.PIEIER9.bit.INTx2=1;     // PIE Group 9, INT2
   IER = 0x100; // Enable CPU INT
   EINT;
// Step 6. IDLE loop. Just sit and loop forever (optional):
    for(;;)
 {
 }
}

interrupt void sciaTxFifoIsr(void)
{
       //SciaRegs.SCITXBUF=scitest;
       SciaRegs.SCITXBUF=sdataA[tnum];     // Send data
       tnum++;
    if(tnum>7)
    {
      tnum=0;
         flag_tci=1;
    }
    SciaRegs.SCIFFTX.bit.TXFFINTCLR=1;  // Clear SCI Interrupt flag
    PieCtrlRegs.PIEACK.all|=0x100;      // Issue PIE ACK
}
interrupt void sciaRxFifoIsr(void)
{
     rdataA[rnum]=SciaRegs.SCIRXBUF.all;  // Read data
  rnum++;
     if(rnum>7)
  {
      rnum=0;
         flag_rci=1;
  }
    SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;   // Clear Overflow flag
    SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;   // Clear Interrupt flag
    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 = 0;
   SciaRegs.SCILBAUD = 193;
   SciaRegs.SCICCR.bit.LOOPBKENA =0; // Enable loop back
   SciaRegs.SCIFFTX.all=0xC021;
   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;
}
 
Thanks for your help