STM32 GPIO 使用
操作步骤:
1. 使能 GPIO 对应的外设时钟
例如://使能 GPIOA、GPIOB、GPIOC 对应的外设时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |
RCC_APB2Periph_GPIOB|
RCC_APB2Periph_GPIOC , ENABLE);
2. 声明一个 GPIO_InitStructure 结构体
例如:
GPIO_InitTypeDef GPIO_InitStructure;
3. 选择待设置的 GPIO 管脚
例如:/* 选择待设置的 GPIO 第 7、8、9 管脚位 ,中间加“|”符号 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 |
GPIO_Pin_9;
4. 设置选中 GPIO 管脚的速率
例如:/* 设置选中 GPIO 管脚的速率为最高速率 2MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; //
最高速率 2MHz
5. 设置选中 GPIO 管脚的模式
例如:/* 设置选中 GPIO 管脚的模式为开漏输出模式*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; //
开漏输出模式
6. 根据 GPIO_InitStructure 中指定的参数初始化外设 GPIOX
例如:/* 根据 GPIO_InitStructure 中指定的参数初始化外设 GPIOC */
GPIO_Init(GPIOC, &GPIO_InitStructure);
7.其他应用
例: 将端口 GPIOA 的第 10、15 脚置 1(高电平)
GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);
例:将端口 GPIOA 的第 10、15 脚置 0(低电平)
GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);