STM32ライブラリ関数GPIOポート開発

STM32ライブラリ関数GPIOポート開発
データ参照パンクチュアルアトムF1開発データ

GPIOの重要な機能:

ここに写真の説明を挿入

重要な機能の詳細な説明:

1つの初期化関数:

void GPIO_Init(GPIO_TypeDef GPIOx、GPIO_InitTypeDef * GPIO_InitStruct); *
ここに写真の説明を挿入
使用方法
GPIO_Init(GPIOB、&GPIO_InitStructure);ライブラリの原理:
1。最初に構造を定義し(ポートを複数回定義すると便利です)
ここに写真の説明を挿入
、構造作成して使用します。構造を作成します: GPIO_InitTypeDef GPIO_InitStructure;
2。
構造を構成します構造内の対応するメンバーに値を割り当てます;

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置;范围:0~15;
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //推挽输出
																					 //对应方式:
																					 //GPIO_Mode_AIN = 0x00, 模拟输入
																					 //GPIO_Mode_IN_FLOATING = 0x04, 输入浮空
																					 //GPIO_Mode_IPD = 0x28, 输入下降沿
																					 //GPIO_Mode_IPU = 0x48, 输入上升沿
																					 //GPIO_Mode_Out_OD = 0x14, 开漏输出
																					 //GPIO_Mode_Out_PP = 0x10, 推挽输出
																					 //GPIO_Mode_AF_OD = 0x1C, 复用开漏
																					 //GPIO_Mode_AF_PP = 0x18 复用推挽
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz  、2MHZ 、10MHZ

2つの読み取り入力レベル関数:

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef GPIOx、uint16_t GPIO_Pin); *
機能: GPIOの入力レベルを読み取ります。実際の動作はGPIOx_IDRレジスタです。
例:
GPIO_ReadInputDataBit(GPIOA、GPIO_Pin_5); // GPIOA.5の入力レベルを読み取ります。最初のレベルは、どのグループを定義するかです。2番目はどの口を定義することです

uint16_t GPIO_ReadInputData(GPIO_TypeDef GPIOx); *
機能: GPIOの特定のグループの入力レベルを読み取ります。実際の動作はGPIOx_IDRレジスタです。
次に例を示します
。GPIO_ReadInputData(GPIOA); // GPIOAグループ内のすべてのioポートの入力レベルを読み取り、 16ビット値返します。

出力レベルを読み取る2つの関数:上記と同じ

uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef * GPIOx、uint16_t GPIO_Pin);
機能:GPIOの出力レベルを読み取ります。実際の動作はGPIO_ODRレジスタです。
例:
GPIO_ReadOutputDataBit(GPIOA、GPIO_Pin_5); //GPIOA.5の出力レベルを読み取ります

uint16_t GPIO_ReadOutputData(GPIO_TypeDef * GPIOx);
機能:GPIOの特定のグループの出力レベルを読み取ります。実際の動作はGPIO_ODRレジスタです。
次に例を示します
。GPIO_ReadOutputData(GPIOA); // GPIOAグループ内のすべてのioポートの出力レベルを読み取ります

出力レベルを設定する4つの関数:

void GPIO_SetBits(GPIO_TypeDef GPIOx、uint16_t GPIO_Pin); *
機能:特定のIOポート出力を高レベル(1)に設定します。BSRRレジスタの実際の動作

void GPIO_ResetBits(GPIO_TypeDef * GPIOx、uint16_t GPIO_Pin);
機能:特定のIOポート出力を低レベル(0)に設定します。BRRレジスタの実際の動作。

void GPIO_WriteBit(GPIO_TypeDef GPIOx、uint16_t GPIO_Pin、BitAction BitVal); *
void GPIO_Write(GPIO_TypeDef GPIOx、uint16_t PortVal); *
これら2つの関数は一般的には使用されず、IOポートの出力レベルを設定するためにも使用されます。

例:
マーキールーチン:
1。IOポートクロックを有効にします。
関数RCC_APB2PeriphColckCmd();を呼び出します(異なるIOグループ、呼び出しクロックの有効化が異なります)2.IO
ポートモードを初期化します。
関数の呼び出し:GPIO_Init();
3. IOポートを操作し、高レベルと低レベルを出力します。
GPIO_SetBits();
GPIO_ResetBits();

おすすめ

転載: blog.csdn.net/qq_45396672/article/details/102859101