STM32の学習体験12:ポートは多重化および再マッピング

〜簡単後に読み取るために、それを記録
主な要素:
1)ポートコンプレックス;
2)ポートの再マッピング;
公式情報:「STM32中国のリファレンスマニュアルV10」第8章一般的な多重化機能IO(GPIOと事実ゆえafio)
1ポートコンプレックスコンセプト
内蔵周辺STM32の多くは、これらの周辺機器の外部端子はGPIOと多重化されています。換言すれば、GPIO内蔵周辺機能ピン、時間GPIOを内蔵周辺使用、呼び出されているように、次にとき多重として再利用することができれば。
シリアル送受信ピン1と我々はPA9およびPA10を置くとき、PA9およびPA10であるGPIOとして使用され、代替機能ピンシリアルポートをポート多重化と呼ばれる1つの受信機を送信するために使用されていません。
ここに画像を挿入説明
(PA9、シリアルポート、実施例1とPA10の)2ポートマルチプレックス構成プロセス
2.1クロック(ポートクロックイネーブル)GPIOポートを有効にします。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

2.2周辺クロックと多重化イネーブル(ポートPA9に、PA10は、シリアルポートに多重化され、従ってシリアル・ポート・クロックをイネーブル):

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

2.3ポートモード設定(GPIOポートモードの設定や「STM32中国のリファレンスマニュアルV10」の外観代替機能GPIOの設定方法についてはこちらをご覧ください);
ここに画像を挿入説明
表が示す上記の2.4を使用すると、全二重シリアルポート1、プッシュプル構成USARTx_TXピンを設定すること次のように入力又はプル入力、コードの一部として出力、USARTx_RX浮動ピンを多重化します。

//USART1_TX    PA.9 复用推挽输出// 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;              //PA.9// 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      //速率50MHz//
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //复用推挽输出// 
GPIO_Init(GPIOA, &GPIO_InitStructure); 
//USART1_RX    PA.10 浮空输入//
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;             //PA10// 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //浮空输入// 
GPIO_Init(GPIOA,&GPIO_InitStructure);   

3.ポートの概念再マッピング
、より良い編成及びピンの機能に設計エンジニアを可能にするために、各周辺装置は、入出力ピンの数を構築し、これらのピン出力ポートは、一般的に固定されています。 STM32の概念は、デフォルトに、すなわち、周辺ポートピン加え、周辺ピン再マッピングに導入されただけでなく、レジスタ・モードを再マッピングすることによって提供されてもよい、このピンは、他の周辺機器ポートにマッピングされ。
各種周辺機器IO機能の最適な数をパッケージ化するために、いくつかの多重化機能は、他のピンに再マッピングすることができます。STM32は、多く組み込まれている再マッピング(再マッピング)機能を有する周辺入力ピンと出力ピン。
; 2)ポートの数を増加させる1)簡単なPCB設計、信号のクロストークを減少させる。したがって主な機能を再マッピング。
ピン再マッピング4. STM32F103x LQFP100
ここに画像を挿入説明
マニュアル5.見る「STM32F103ZET6」チップ
シリアルポート依然としては、例えば、デフォルトでは、シリアルポートは、ピン1を受け取り、PA9およびPA10(右観察視野から第二)であるUSART1_TXであってもよいです及び(最初の列の右から見て)上記行くUSART1_RX PB6とPB7ピンを再マッピング。
ここに画像を挿入説明
6.いくつかの再マップと完全に再マッピング
再マッピング部:一部ピン機再マッピングは、元のデフォルトのピンのピンの一部があり、完全に再マッピング:機能周辺機器すべてのピンがリマップされます。実施例3シリアル
ここに画像を挿入説明
(PB6に、シリアルポート、実施例1とPB7)7ポートの再マッピング構成
7.1クロック(クロックが再マップできるように、ポート)GPIOポートを有効にします。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

7.2(PB7シリアルポートに多重化、ポートPB6し、従ってシリアル・ポート・クロックをイネーブル)機能周辺クロックをイネーブルにします。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);

7.3(事実ゆえafioクロックを有効にする必要があります再マッピング)事実ゆえafioクロックを有効にします。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE)

7.4オープン再マッピング:

GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);
//根据第一个参数,确定部分重映射还是全部重映射,在stm32f10x_gpio.h文件中定义了取值范围为下面宏定义的标识符://
//#define GPIO_PartialRemap_USART3    ((uint32_t)0x00140010);  //  
//#define GPIO_FullRemap_USART3      ((uint32_t)0x00140030);   //
//若要使用 USART3 的部分重映射,调用函数方法为:                  //
//GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);        //

8.どのような状況は事実ゆえafioアクセシビリティクロックをオープンする必要がありますか?
AFIO_MAPR前の登録、AFIO_EXTICRX AFIO_EVCRと読み取りおよび書き込み、それがすべき最初のオープン事実ゆえafioクロック:
1)AFIO_MAPR:機能を多重化再マッピングの構成;
2)AFIO_EXTICRX:外部割り込みマッピング設定;
3)AFIO_EVCR:設定eventOutとしてイベント出力。
知識ポイント
1)レビューGPIOの設定パラメータベースのライブラリ関数を参照してください経験3を学ぶSTM32:GPIO実験を-ベースのライブラリ関数を

公開された24元の記事 ウォンの賞賛2 ビュー4120

おすすめ

転載: blog.csdn.net/Leisure_ksj/article/details/105313702