串口設置總結

1 串口的組成

在這裏插入圖片描述
Control Unit:給發送器和接受器傳遞時鐘
Buad-rate Generator:將接收到的時鐘經過計算得到波特率傳給移位器
Transmit Buffer Register:發送緩存寄存器
Transmit Shifter:發送移位器
Receiver Buffer Register:接收緩存寄存器
Receiver Shifter:接收移位器

2 時鐘來源

SOC時鐘經過APB總線傳Control Unit之後再傳遞給Buad-rate Generator得到波特率

3 波特率的計算和設置

1.通過所傳的時鐘和要的到的波特率值計算DIV_VAL,之後通過
DIV_VAL計算寄存器的值。
2.將計算的DIV_VAL值整數寫進寄UBRDIV0存器,小數乘與16再對照UDIVSLOT0表寫UDIVSLOT0寄存器。
計算公式:DIV_VAL = (SCLK_UART / (bps x 16)) −1
例子: DIV_VAL = (40000000 / (115200 x 16)) -1
= 21.7 -1
= 20.7

4.主要使用到的寄存器

ULCON0:設置發送的數據位,校驗位和停止位 UCON0:設置串口模式 UFCON0:FIFO模式相關 UMCON0:MDA模式相關 UBRDIV0和UDIVSLOT0:計算波特率