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.

TMS320F28377D: TMS320F28377D SCIc 收发问题

Part Number: TMS320F28377D

请问TMS320F28377D  SCIc与a,b有什么不同么?c一直调不通,是我忽略了什么么?时钟194M,波特率460800,在b上测试正常

//中断

PieVectTable.SCIC_RX_INT = &scicRxFifoIsr;
PieVectTable.SCIC_TX_INT = &scicTxFifoIsr;

//GPIO

GPIO_SetupPinMux(139, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(139, GPIO_INPUT, GPIO_PUSHPULL);
GPIO_SetupPinMux(140, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(140, GPIO_OUTPUT, GPIO_ASYNC;

//初始化


ScicRegs.SCICCR.all = 0x0007; // 1 stop bit, No loopback 无回环测试
// No parity,8 char bits,
// async mode, idle-line protocol
ScicRegs.SCICTL1.all = 0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
ScicRegs.SCICTL2.bit.TXINTENA = 1; // trans interrupt enable
ScicRegs.SCICTL2.bit.RXBKINTENA = 1;// receive interrupt enable

ScicRegs.SCIHBAUD.all = 0x0000;
ScicRegs.SCILBAUD.all = 0x000C;


ScicRegs.SCIFFTX.all = 0xC000;//1100 0000 0010 0010b 重新开始收发 使能FIFO增强功能 发送FIF0为空 FIF0中断级位为2
ScicRegs.SCIFFRX.all = 0x002D; //使能接收中断 接收FIFO级位为13
ScicRegs.SCIFFCT.all = 0x00;

ScicRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset 重启SCI SCICTL1 寄存器的 SWRESET,必须被置 1
ScicRegs.SCIFFTX.bit.TXFIFORESET = 1;
ScicRegs.SCIFFRX.bit.RXFIFORESET = 1;

//定时开启发送中断,定周期发送;

__interrupt void scicTxFifoIsr(void)
{
scicTx(DYT_REVDATA_LEN);

ScicRegs.SCIFFTX.bit.TXFFINTCLR=1; // Clear SCI Interrupt flag
PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ACK
}

//
// scicRxFifoIsr - SCIC Receive FIFO ISR
//
__interrupt void scicRxFifoIsr(void)
{
//关中断,保证数据读取不被打断,最快速度
DINT;


//rdata_pointA = (rdata_pointA+1) & 0x00FF;
scicRx(13);//13个数据一个中断

ScicRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag
ScicRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag

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

//开中断
EINT;
}