stm32f407的IO口可由软件配置成8种模式:输入浮空、输入上拉、输入下拉、模拟输入、开漏输出、推挽输出、推挽式复用功能、开漏式复用功能。
下列分别是GPIOx常用配置相关的寄存器:
1、MODER寄存器(端口模式)
32位寄存器,每两位控制一个IO口的模式,总共16组。00:输入、01:通用输出模式、10、复用功能模式、11:模拟模式,该寄存器在复位后,一般都是0,也就是默认条件下一般是输入状态。
2、OTYPER寄存器(输出类型)
32位寄存器,高16位保留,必须保持复位值,低16位,每位控制一个IO口输出类型。0:输出推挽、1:输出开漏,该寄存器仅用于输出模式,复位后各位为0,默认输出类型是推挽输出。
3、OSPEEDR寄存器(输出速度)
32位寄存器,每两位控制一个IO口的模式,总共16组。00:2MHz、01:25MHz、10、50MHz、11:100MHz,该寄存器仅用于输出模式,复位后各位为0
4、PUPDR 寄存器(上拉下拉)
32位寄存器,每 2 个位控制一个 IO 口,用于设置上下拉。00:无上拉下拉、01:上拉、10、下拉、11:保留。
库函数的GPIOx配置函数:
void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState) 引脚时钟使能
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
引脚初始化
下列分别是GPIOx常用参数设置相关的寄存器
ODR寄存器,控制IO口的输出状态,与读取IO口的输出状态,改变整组IO口状态,一般不用此寄存器,相关库函数如下
void GPIO_Write(GPIO_TypeDef* GPIOx,uint_t PortVal)
IDR寄存器,读取IO口的输入状态,相关库函数如下
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx) 读取某组IO口
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)读取某个IO口
BSRR寄存器 控制IO口的输出状态,改变单个IO口状态, BSRRL写1则置1,写0无反应,BSRRH写1则置零,写0无反应,相关库函数如下:
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 置1
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)置0,PXout()
上一篇:STM32 VBAT外围电路接法详解
下一篇:STM32F103C8T6最小系统地的构建(5)_复位电路
推荐阅读最新更新时间:2024-11-16 20:07
设计资源 培训 开发板 精华推荐
- 硬件消抖模块
- LTC4162IUFD-FST 9V 至 35V 2 节 3.2A 充电器的典型应用,具有 PowerPath 和 2A 输入限制
- FAN2110MPX大电流降压模块
- 使用 Infineon Technologies AG 的 OM7641SM 的参考设计
- LTC2284IUP 演示板,DeMUX 双路 ADC,+3.0V,105Msps 14 位 1MHz
- 适用于STM32F756ZG MCU的STM32 Nucleo-144开发板,支持Arduino,ST Zio和morpho连接
- MC78M05 可调输出稳压器的典型应用 @ 7 至 30V
- LTM8042EV 演示板、32V、1A 模块升压 LED 驱动器
- LTC3633AIFE-2 1.8V/2.5V 4MHz 降压稳压器的典型应用电路
- LT1076CR 基本正降压转换器的典型应用