在28335上,通信正常,但是移植到28035上,发送8个字节,只能收到5个字节[img]file:///C:/Users/HuJP/AppData/Roaming/Tencent/Users/1506699531/QQ/WinTemp/RichOle/CEX9A40W$NGY~6[(A%7D8%7BU0M.jpg[/img]
,基本配置如下:static void UARTConfigSet(Uint16 BaudRate,Uint8 CONFIG)
{
/* Initialize SCI-C: */
/*SCIC reset */
SciaRegs.SCICTL1.bit.SWRESET = 0;
SciaRegs.SCICTL1.bit.SWRESET = 1;
SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SciaRegs.SCIHBAUD = 0x0000;
SciaRegs.SCILBAUD= SCI_PRD; //设置波特率为38400, 晶振为60MHZ,理论应该为2F
/*FIFO enable */
SciaRegs.SCIFFTX.bit.SCIFFENA = 1; //使能FIFO增强功能 使能SCI FIFO的功能
SciaRegs.SCIFFTX.bit.TXFFIL = 0; //发送中断级别为0,也就是当发送FIFO为空时发生中
SciaRegs.SCIFFRX.bit.RXFFIL = 1; //FIFO接收中断级别为1.也就是说当接收FIFO中有1个字符时发生中断
/*FIFO interrup enable */
SciaRegs.SCIFFRX.bit.RXFFIENA = 1; ////使能FIFO接收中断
SciaRegs.SCICTL1.bit.RXERRINTENA = 1; //
SciaRegs.SCIFFTX.bit.TXFFIENA = 0; ////没有产生接收中断
SciaRegs.SCICTL1.bit.RXENA = 1; /*enable RX */
SciaRegs.SCICTL1.bit.TXENA = 1; /*enable TX */
}
interrupt void scicTxFifoIsr(void)
{
( void )xMBRTUTransmitFSM(); //发送状态机,实现数据发送
SciaRegs.SCIFFTX.bit.TXFFINTCLR=1; // Clear Interrupt flag
PieCtrlRegs.PIEACK.all|=PIEACK_GROUP9; // Issue PIE ACK
}
在发送状态机中,把8个字节依次放到了SciaRegs.SCITXBUF 寄存器中,但是接受的时候确实5个字节,哪位可以帮忙看下,谢谢 |