首先,确定GPIO口的输入和输出,进而, 当GPIO处于output模式,一般选择no pull,引脚能够正确地输出目标值; 当GPIO处于input模式,需要根据默认的输入值来确定配置模式,如果默认输入的值为1时,最好配置为pull up,否则,最好配置为pull down; 当按照上面的规则进行配置之后,则能够避免外部电路没有上拉、下拉电阻时出现的...
GPIO_pull|--|--| |GPIO_NOPULL|没有上拉或下拉激活| |GPIO_PULLUP|上拉激活| |GPIO_PULLDOWN|下拉激活| HAL_GPIO_Init HAL_GPIO_ReadPinHAL_GPIO_TogglePin
3) GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR) (x = A..I/) GPIOportoutput speedregister 偏移地址:0x08 复位值: ●0x000000C0(端口 B) ●0x00000000(其它端口) 4) GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A..I/) GPIOportpull-up/pull-downregister 偏移地址:0x0C 复位值: ●0x64000000...
开漏输出无法真正输出高电平,需要借助外部上拉电阻来完成对外驱动。 推挽输出(Push-pull Output) 当输出寄存器上的’0’被激活时,N-MOS导通;而输出寄存器上的’1’被激活时,P-MOS导通。推挽输出具备输出高低电平的能力。通过了解GPIO的这些功能,我们可以更好地利用它们来控制各种外部设备,实现嵌入式系统的各种功能需...
设置模式:按照引脚的工作模式,依次对该结构体的成员变量赋值,如 pin、mode、pull 等。 调用函数:调用初始化函数HAL_GPIO_Init将配置参数写入到对应的寄存器,入口参数为端口号和结构体变量。 6.3 GPIO 外设接口函数的概述 引脚初始化函数:HAL_GPIO_Init
Pin=GPIO_PIN_5; //PB5 GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出 GPIO_Initure.Pull=GPIO_PULLUP; //上拉 GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH; //高速 HAL_GPIO_Init(GPIOB,&GPIO_Initure); GPIO_Initure.Pin=GPIO_PIN_5; //PE5 HAL_GPIO_Init(GPIOE,&GPIO_Initure); /*...
表示GPIO引脚的上拉/下拉电阻状态,可以选择无上拉/下拉(GPIO_PuPd_NOPULL)、上拉(GPIO_PuPd_UP)、下拉(GPIO_PuPd_DOWN)。根据实际连接情况选择合适的上拉/下拉电阻状态。示例:GPIO_InitStruct.Pull = GPIO_PuPd_NOPULL; // 无上拉/下拉GPIO_InitStruct.Pull = GPIO_PuPd_UP; // 上拉GPIO_Init...
*GPIOx_LCKR (GPIOx_Lock Register) 端口配置锁定寄存器 Port configuration lock register *DAC (Digital-to-Analogue Conversion) 数模转换 *AF (Alternate-Function) 复用功能 *输入上拉 Input with pull-up *输入下拉 Input with pull-down *浮空输入 Floating input ...
GPIO Pull-up/Pull-down 通用输入输出上拉/下拉 User Label 用户标签 其实能够调整的部分就只有上下拉可以选择,总共三种状态,既不上拉也不下拉,上拉,下拉。User Label已经在前面讲过作用了不赘述。 下面来看中断的配置页面: 和输入模式的界面完全一样,唯一不一样的地方就是输出模式有了很多。这里选择的模式决定了...
如图是GPIO的结构原理图: 1.模拟输入 从上图我们可以看到,我觉得模拟输入最重要的一点就是,他不经过输入数据寄存器,所以我们无法通过读取输入数据寄存器来获取模拟输入的值,我觉得这一点也是很好理解的,因为输入数据寄存器中存放的不是0就是1,而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器。