我的频率设置如下:
#define Fosc 11059200
#define Fcclk (Fosc * 4)
#define Fcco (Fcclk * 4)
#define Fpclk (Fcclk / 4) * 4
串口部分设置参考示例程序的设置如下
U0LCR = 0x80; // DLAB = 1,可设置波特率
Fdiv = (Fpclk / 16) / UART_BPS; // 设置波特率
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03;
当UART_BPS=115200时,Fdiv=(11059200*4/16)/115200=24
U0DLM = 24/256 = 0;
U0DLL = 24%256=24;
当UART_BPS=921600时,Fdiv=3,U0DLM,U0DLL的值与115200的一样,小数都被忽略了,为什么115200就可以稳定的传输呢
|