該暫存器高 16 位無效,最低 4 位為小數部分,其餘部分為整數部分。
通過配置波特率暫存器 brr 即可實現在應用中自由高效地修改任意串列埠的波特率,實現外掛程式裝置的寬波特率相容。
uart波特率計算公式:
u sa
rtdi
v=di
v_ma
ntis
sa+d
iv_f
ract
ion8
∗(2−
over
8)usartdiv=div\_mantissa+\dfrac
usartd
iv=d
iv_m
anti
ssa+
8∗(2
−ove
r8)d
iv_f
ract
ion
16倍取樣的公式:
t x/
rxbu
ad=p
clk16
∗usa
rtdi
vtx/rx\ buad = \dfrac
tx/rxb
uad=
16∗u
sart
divp
clk
建議參考 stm32f4xx_hal_uart.c --> uart_setconfig() 中暫存器 brr 配置部分。
其中 usart6\usart1 屬於 apb2 時鐘匯流排;uart8\uart7\uart5\uart4\usart3\usart2 屬於 apb1 時鐘匯流排。
該函式使用16倍取樣,具體請根據串列埠配置進行選擇,如果使用8倍取樣,需要將uart_brr_sampling16改為uart_brr_sampling8。
usart_brr_configuration
(uart_handletypedef *huart, uint32_t baudrate)
else
}else
else
}}
STM32 HAL庫學習筆記
1 系統時鐘 一般用stm32cube生成,使用者只需要會用stm32cube就行。2 gpio輸出void led gpio config void 3 gpio輸入void key gpio config void 4 外部中斷void exti key config void void ext...
STM32 HAL庫學習筆記
1 普通函式與 函式的區別 對普通函式的呼叫 呼叫程式發出對普通函式的呼叫後,程式執行立即轉向被呼叫函式執行,直到被呼叫函式執行完畢後,再返 用程式繼續執行。從發出呼叫的程式的角度看,這個過程為 呼叫 等待被呼叫函式執行完畢 繼續執行 對 函式呼叫 呼叫程式發出對 函式的呼叫後,不等函式執行完畢,立...
stm32HAL庫學習 UART學習筆記
一 串列埠輸出列印重定向printf,如下 int fputc int ch,file f hal uart transmit huart1,temp,1,1000 return ch int fgetc file f 用作程式除錯輸出時,可以使用一組巨集定義,方便開發完成後關閉printf 除錯日...