GPIO_Init関数


GPIO_Init関数:
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

機能説明:GPIO_によるInitStructで指定したパラメータ初期化外付けGPIOxレジスタ入力パラメータ1:GPIOx:xはA,B,C,DまたはEでGPIO外付け入力パラメータ2:GPIO_を選択できますInitStruct:指向構造GPIO_InitTypeDefのポインタには、外付けGPIOの構成情報が含まれています.これにより、2番目のパラメータ「&GPIO_InitStructure」には、外付けGPIOの構成情報が含まれていることがわかります.メイン関数の先頭には、このようなプライベートデータ宣言が行われています.
GPIO_InitTypeDef  GPIO_InitStructure;

ヘッダファイル「stm 32 f 10 x_gpio.h」にGPIO_が表示されますInitTypeDefの定義:
 typedef struct
{
        uint32_t GPIO_Pin;             
                              
       GPIOMode_TypeDef GPIO_Mode;    
       GPIOSpeed_TypeDef GPIO_Speed;  
       GPIOOType_TypeDef GPIO_OType;  
       GPIOPuPd_TypeDef GPIO_PuPd;    
}GPIO_InitTypeDef;

GPIO構成のパラメータ理解:GPIOMode_TypeDef GPIO_Mode:
typedef enum
{ 
  GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */
  GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */
  GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */
  GPIO_Mode_AN   = 0x03  /*!< GPIO Analog Mode */
}GPIOMode_TypeDef;

GPIOSpeed_TypeDef GPIO_Speed:
  typedef enum
{ 
  GPIO_Low_Speed     = 0x00, /*!< Low speed    */
  GPIO_Medium_Speed  = 0x01, /*!< Medium speed */
  GPIO_Fast_Speed    = 0x02, /*!< Fast speed   */
  GPIO_High_Speed    = 0x03  /*!< High speed   */
}GPIOSpeed_TypeDef;

また,この関数の大まかな理解も必要である(https://img-blog.csdnimg.cn/20190728202929917.png
実は初期化ピンです