1

どうすれば USART ボーレートを 2Mbps、3Mbps、または 4Mbps に上げることができますか? STM32L151RCT6A を使用しています。921600 まで実行できます。PLL 32MHz でクロックを設定しました。それが与えられたデータシートでは、それが可能であることを示しています。

4

1 に答える 1

3

データシートでは、特定の部品とその周辺セット、および電気的特性のみが概説されています。デバイスの使用方法については、リファレンス マニュアルが必要です。これにより、ボーレートの次の式が得られます。

Tx/Rx ボー = CK_APB1 / (8 x (2 - OVER8) x USARTDIV)

USARTDIV は、USART_BRR レジスタでコード化された符号なしの固定小数点数です。

  • OVER8=0 の場合、小数部は 4 ビットでコード化され、USART_BRR レジスタの DIV_fraction[3:0] ビットによってプログラムされます。
  • OVER8=1 の場合、小数部は 3 ビットでコード化され、USART_BRR レジスタの DIV_fraction[2:0] ビットによってプログラムされ、ビット DIV_fraction 3はクリアされたままにする必要があります。

USART は APB1 バス上にあります。リファレンス マニュアルの図 12 はクロック ツリーで、APB1 クロックが PLL クロックからどのように生成されるかを示しています。APB1 の最大クロックは 32MHz です。高速の場合は OVER8=1 が必要です。

ボー = 32X10 6 / (USARTDIV x 8)。

USARTDIV = 32X10 6 / (ボー x 8)

したがって、4Mbps の場合、USARTDIV=1 です (詳細については、表 138 S.No.12 を参照してください)。2Mps の場合、USARTDIV=2。3Mbps を達成するには、APB1 クロックを 24MHz に下げ、USARTDIV=1 を設定する必要があります (表 131 を参照)。ただし、他のすべての APB1 ペリフェラルでもクロック レートが変化することに注意してください。

USART ボーレートを正しくプログラムする最も簡単な方法は、STM32L1xx 標準ペリフェラル ライブラリを使用することです。また、正しいペリフェラル クロック設定 (およびその他) を決定し、初期化コードを生成するには、STM のMicroXplorerツールを使用できます。

于 2013-12-10T20:28:31.273 に答える