ボーレート1.1のブロック図
1.2概略的なボーレートレジスタ
1.3概略ボーレート算出式
図2は、ボーレートは、他の保持するために使用される32ビットのレジスタのみ下位16ビット、下位16ビットが分割され、小数点以下を保持するために使用される下位4ビット、整数であることがわかります。
ボーレート計算式:送信/受信ボーレート= FCK /(8 *(2- OVER8)* USARTDIV)
USARTDIV = FCK / 8×(2- OVER8)/ TXRXボー
Tx / Rxボーレートは、我々は通常、我々が設定されていることを言う// 115200Hz既知の値です。
FCKは、既知の値の@ 84MHzシリアルクロックであります
CR1 OVER8設定レジスタにより、
USARTDIV値はレジスタBRRに書き込まれ、値を計算する必要があります。
次のような:
無効 Usart1_Init(U32ボーレート)を// 仮定115200Hz =ボーレート { フロートUSARTDIV; U16仮数; / * ***セットボーレート** * / // 。TXRXでUSARTDIV FCK = / * 8(2- OVER8)/ボーレート // USARTDIV + =仮数(分数/ * 8(2- OVER8)。) USARTDIV =(フロート)84百万 / 8 /ボーレート; // 設け1 = OVER8; 84000000Hz FCK = 仮数=(INT)USARTDIV; // 整数部 画分=(U8)((USARTDIV-仮数)* 16); // 16ビット整数に全体の小数部 USART1-> BRR =仮数<< 4 | フラクション; }