1、GPIOプロフィール
ようにGPIO STM32F103ZET6のようGPIOA、GPIOB、GPIOCなどの基、...及び複数の。各グループは16 GPIOポートIOを有しています。
GPIOレジスタ群16ビットのレジスタと、リセット、各グループは、2つのGPIO設定レジスタ32と、2つの32ビットデータレジスタを有し、32ビットのセット/リセットレジスタ、類似しています32ビットのロックレジスタ。
多くのSTM32 IOポートは、IOポートは5V互換性のあるものを特定、それはで5VレベルIOレベルの入札FTマニュアルと互換性があり、データシート端子説明チップから5V互換見つけることができますされています。
2、GPIO設定
STM32F103ZET6は異なる機能を設定することにより構成されたCRLとCRH IOを登録することができます。IOは異なる次のモードがあります。
-
- フローティング入力
- 入力ドロップダウン
- 入力プル
- アナログ入力
- オープン・ドレイン出力
- プッシュプル出力
- プッシュプル多重化機能
- オープン・ドレインの多重化機能
すべての4 BIT CRHとCRLは下位8ビットIO機能を構成するためにIO、CRLの機能を設定するために使用されるレジスタ、CRHは、上位8ビットIO機能を構成します。
CNF1、CNF0、MODE1、MODE0コンフィギュレーションビットの4ビットIO、GPIOF0構成ビットCNF1、CNF0、MODE1、MODE0ように、これらのビットは配置されているCRL BIT3〜BIT0レジスタ; GPIOF1構成ビットCNF1、CNF0 、MODE1、MODE0これらのビットが配置されているCRLがBIT7〜BIT4レジスタ; GPIOF8構成ビットCNF1、CNF0、MODE1、MODE0これらのビットはCRHレジスタBIT3〜BIT0に位置している、ようにと。CRL及びCRHこれら二つのレジスタ64 IO構成の16ビットの合計からなるビットの総数、。
IOポート・コンフィギュレーション・テーブル次のように:
MODE0とMODE1はIOの入力と出力の状態を設定するために使用される。CNF0 CNF1とIOポートIO機能の入力および出力の状態の設定に応じて異なります。
MODE1最初の設定とMODE0入力または出力によってIO、IOを設定し、次にCNF1 CNF0 IO構成を介しときどの入力または出力機能です。
CNF1、CNF0、MODE1、MODE0 IOにより、これらのビットは、プルアップ/プルダウン入力を設定してもよいが、具体的には、これらの4ビットが決定されていないによると、プルダウン入力または入力をプルするように構成されています。IOポートは、それがODRレジスタによってプルダウンまたはプル入力をデータ入力とを区別することにある端部に設けられています。ODR IOポートが1に設定されている場合、IOポートは、入力をプルするために設けられている。ODR IOポートが0にクリアされている場合、IOポートはプルダウン入力に設定されています。
CNF1、CNF0は、MODE1、MODE0ビット構成の機能は以下の通り:
MODE1 MODE0と制御入力とIOの出力:
-
-
- [MODE1、MODE0] = 00は、入力として提供されます。
- [MODE1、MODE0] = 01が出力する10MHZの速度が設定されています。
- [MODE1、MODE0] = 10が出力する20MHZの速度が設定されています。
- [MODE1、MODE0] = 11を出力するように50MHZの速度が設定されています。
-
CNF1、CNF0 IOを区別する必要が入力または出力されます。
IOを入力するように設定されます。
-
-
-
- [CNF1、CNF0]は入力モードを設定する00 =
- [CNF1、CNF0]はフローティング入力01 =。
- [CNF1、CNF0]はプルアップ/プルダウン入力= 10。
- [CNF1、CNF0]は11予約を=。
-
-
IOは出力に設定されています:
-
-
-
- [CNF1、CNF0] = 00を出力するジェネリックプッシュ無料。
- [CNF1、CNF0]は、共通のオープンドレイン出力01 =。
- [CNF1、CNF0]はフリー多重出力機能をプッシュする= 10。
- [CNF1、CNF0] = 11が出力マルチプレクス機能ドレイン開くように設定されています。
-
-
3、GPIOは、リセット状態
チップパワーオンリセット後、フローティング入力モードにIOポート・モードのデフォルトの最も。しかし、このようなPA15、PA14、PA13、PB4、PB3および他のIOなどの一部の特殊なIOは、IOは、JTAGのダウンロードとデバッグSWIOの口はチップリセット後、これらはJTAG IOがSWIOおよびその他の機能だったデフォルトになって、である、それはチップを言うことですリセット後、PA15、PA14、PA13、PB4、PB3 IO等が従来の構成、対応する機能によって提供することができません。あなたはこれらのポートのIOポート機能を使用する必要がある場合は、GPIOポートとしてこれらのIO機能を再マップする必要があります。
需要注意的是如果将PA15、PA14、PA13、PB4、PB3等口重映射为GPIO口后,则不能用调试器调试程序,而且也不能下载程序,只有通过复位芯片,使这些IO口的功能处于复位默认功能,才能下载程序。
复位后,PA15、PA14、PA13、PB4、PB3这些引脚被配置成如下模式:
-
- PA15:JTDI被置为上拉输入模式。
- PA14:JTCK/SWCLK被置为下拉输入模式。
- PA13:JTMS/SWDIO被置为上拉输入模式。
- PB4:JNTRST被置为上拉输入模式。
- PB3:JTDO
4、GPIO锁定机制
GPIO的锁定机制允许冻结IO口的配置。当在一个端口位上通过LCKR寄存器执行了锁定(LOCK)程序,在下一次复位之前,将不能再更改端口位的配置。
5、外设的GPIO配置
可以在中文参考手册的GPIO介绍章节查到外设的GPIO设置,比如说如果要使用USART_TX功能,需要将USART_TX脚位配置成什么状态,可以在参考手册中查到。
6、GPIO寄存器
CRH和CRL是GPIO的配置寄存器,用来配置IO的功能。
IDR是GPIO的输入数据寄存器。通过IDR寄存器可以读出IO的状态。需要注意的是IDR寄存器只能以字(16位)的形式读出。
ODR是GPIO的输出数据寄存器。通过ODR寄存器可以输出高低电平。
BSRR是GPIO的端口位设置/清除寄存器。BSRR寄存器的高16位是清除IO位,低16位是置位IO位。需要注意的是BSRR只有在写入1的时候,相应的功能才有作用,写入0是无效的。
BRR是GPIO的端口位清除寄存器。BRR基础只有在写入1的时候,相应的功能才有作用,写入0无效。
LCKR是GPIO的端口配置锁定寄存器。LCKR寄存器用来锁定IO口的配置,设置后,除了复位后不能再配置IO的状态。
7、HAL库操作GPIO