STM32 マイクロコントローラーでシリアル ポート プログラムを設定する方法

以下では、STM32F103C8T6 マイクロコントローラを例として、STM32 マイクロコントローラでシリアル ポート プログラムをセットアップする方法を紹介します。

シリアル ポート ハードウェア接続
STM32F103C8T6 マイクロコントローラでは、複数の USART モジュールが利用可能です。これらの USART モジュールのピン配置は次のとおりです。

USART1: PA9 (Tx)、PA10 (Rx)
USART2: PA2 (Tx)、PA3 (Rx)
USART3: PB10 (Tx)、PB11 (Rx)
USART モジュールの 1 つを使用する場合、その Tx ピンを外部デバイスの Rx ピンは、その Rx ピンを外部デバイスの Tx ピンに接続します。

シリアル ポート レジスタの設定
STM32 MCU では、シリアル ポート レジスタには USART_SR、USART_DR、USART_BRR、USART_CR1、USART_CR2、USART_CR3 などが含まれます。これらのレジスタの役割は次のとおりです。

USART_SR: シリアルポートステータスレジスタ。送信完了フラグビット TC、データレジスタ空フラグビット TXE、受信レジスタ非空フラグビット RXNE などを含みます。
USART_DR: シリアル ポート データ レジスタ。送信または受信するデータを保存するために使用されます。
USART_BRR: シリアル ポート ボー レート レジスタ。ボー レートの設定に使用されます。
USART_CR1: シリアル ポート制御レジスタ 1。シリアル ポート イネーブル ビット UE、送信イネーブル ビット TE、受信イネーブル ビット RE、アイドル割り込みイネーブル ビット IDLEIE などを含みます。
USART_CR2: シリアルポート制御レジスタ 2。データ長、ストップ番号、チェックビットなどを設定するために使用されます。
USART_CR3: シリアルポート制御レジスタ 3。ハードウェアフロー制御などの設定に使用されます。
STM32 マイクロコントローラーでシリアル ポート プログラムをセットアップする手順は次のとおりです。

1) USART クロックを有効にする

USART モジュールのクロックは、RCC_APB2PeriphClockCmd() 関数で有効にする必要があります。

2) GPIO ピンモードを設定します。

USART の Tx ピンと Rx ピンを代替機能として設定します。これは GPIO_Init() 関数を使用して設定できます。

3) ボーレートを設定します

USART_BRR レジスタを希望のボー レートに設定します。ボー レートは、USART_Init() 関数を使用して設定できます。

4) シリアルポートを有効にする

USART_CR1 レジスタの UE、TE、RE ビットを設定すると、シリアル ポートの送信機能と受信機能が有効になります。これは USART_Cmd() 関数を使用して設定できます。

5) データの送信

データは、送信する必要があるデータを USART_DR レジスタに書き込むことによって送信されます。

以下は、単純な STM32 シリアル ポート送信プログラムのコード実装です。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/der_power/article/details/129390588