TMS320F2800157: SCI设置波特率问题

Part Number: TMS320F2800157

ScibRegs.SCIFFTX.all = 0xE040; // 1110 0000 0100 0000:发送FIFO配置
ScibRegs.SCIFFRX.all = 0x604F; // 0110 0000 0100 1111: 接收FIFO配置

ScibRegs.SCIFFCT.all = 0x0000; // Set FIFO delay to Zero

ScibRegs.SCIPRI.all = 0x0008; //SCIPRI determines what happens when an emulation suspend event occurs.

//step2:scia init
ScibRegs.SCICCR.all = 0x0007; // ---1 stop bit--- No loopback---无校验---8 char bits---async mode---idle-line protocol
ScibRegs.SCICTL1.all = 0x0003; // enable TX, RX, internal SCICLK---------Disable RX ERR, SLEEP, TXWAKE
ScibRegs.SCICTL2.all = 0x0000; //

ScibRegs.SCIHBAUD.bit.BAUD = 0;
ScibRegs.SCILBAUD.bit.BAUD = 0x0081;

 ScibRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset

用这段程序可以设置SCIB的波特率115200bps,115200以上的波特率也测试可以。

但是设置9600,57600等波特率就不行了,不知道为啥。。。。

case BAUD57600:
ScibRegs.SCIHBAUD.bit.BAUD = 0x103 >> 8;//0x01;
ScibRegs.SCILBAUD.bit.BAUD = 0x103;

case BAUD9600:
//SCI_setConfig(SCIB_BASE, DEVICE_LSPCLK_FREQ, 9600, (SCI_CONFIG_WLEN_8|SCI_CONFIG_STOP_ONE|SCI_CONFIG_PAR_NONE));
ScibRegs.SCIHBAUD.all = 0x06;
ScibRegs.SCILBAUD.all = 0x1A;