大家好、
我正在尝试在运行时使用 Chang sci 波特率。 我使用以下函数来初始化 sci 缓冲区并设置 scib 波特率。
我尝试使用同一函数将波特率重置为运行时的其他数字。 它似乎可以成功几次、那么 UART 永远不会从 PC 接收任何内容。
我们将感谢您的任何建议或帮助。 谢谢
scib_ini (uint16_t sciLbaud){
SCIFFTX.ALL = 0xE040;
ScibRegs.SCIFFRX.ALL = 0x2044;
ScibRegs.SCIFFCT.all = 0x0;
////------------
ScibRegs.SCICCR.all =0x0007;
//启用 TX、RX、内部 SCICLK、禁用 RX ERR、睡眠、 TXWAKE
//
ScibRegs.SCICTL1.all =0x0003;
ScibRegs.SCICTL2.bit.TXINTENA=1;
// ScibRegs.SCICTL2.bit.RXBKINTENA=1;
// 115200波特@LSPCLK = 22.5MHz (90MHz SYSCLK)
//@LSPCLK = 50MHz (200MHz SYSCLK) HBAUD = 0x02且 LBAUD = 0x8B。
//
ScibRegs.SCIHBAUD.ALL =0x0000;
ScibRegs.SCILBAUD.ALL = sciLbaud;//// 53 for 115200
ScibRegs.SCICTL1.all =0x0023;//从复位中撤回 SCI
}