STM32F103ZET6 GPIO使用

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

 

おすすめ

転載: www.cnblogs.com/h1019384803/p/10987785.html