NUC980 UART波特率不能设置低于4800bps

cwlin0 |浏览131次
收藏|2023/12/26 08:10

测试NUC980 UART波特率设置到2400时,会没有波形,2400的话有办法设置吗,目前测试好像最低只能到4800

满意回答

2023/12/26 08:11

驱动中固定uart1~9波特率是由upll 150MHZ分频得到,太低的波特率,无法按150MHZ计算得到。所以将UART时钟源设置为外部晶振12MHZ,例如是UART1,按以下方法修改驱动:


nuc980_serial.c:

clk = clk_get(NULL, "uart1");

clk_prepare(clk);

clk_enable(clk);

 

clk = clk_get(NULL, "uart1_eclk");

clk_prepare(clk);

clk_enable(clk);

 

clkmux = clk_get(NULL, "uart1_eclk_mux");

upll_clk = clk_get(NULL, "upll"); 改为upll_clk = clk_get(NULL, "xin");

clk_set_parent(clkmux, upll_clk);

 

clk = clk_get(NULL, "uart1_eclk_div");

 

//clk_set_rate(clk, 100000000);

clk_set_rate(clk, 150000000); 改为 clk_set_rate(clk, 12000000);

up->port.uartclk = clk_get_rate(clk);


nuvoton2022

其他回答(0)
0人关注该问题
+1
 加载中...