2. GPIOx_IDR和GPIOx_ODR寄存器 2.1GPIOx_IDR寄存器为端口输入寄存器, 只能以16位的形式读出(因为高16位保留), 读出的值为对应I/O的口的状态. 2.2GPIOx_ODR寄存器为端口输出寄存器, 高16位保留低16位可读可写(不可单独操作一个位), 另外也可以通过GPIOx_BSRR和GPIOx_BRR寄存器控制. 3. GPIOx_BSRR, GPI...
1. 配置寄存器:GPIOx_CRL、GPIOx_CRH 用来选择引脚功能,例如输入或输出 2. 数据寄存器:GPIOx_IDR、GPIOx_ODR 用来保存引脚输入电平或输出电平 4. 位控寄存器:GPIOx_BSRR、GPIOx_BRR 用来控制某引脚为1或0 4. 锁定寄存器:GPIOx_LCKR 用来锁定引脚配置(不允许修改) 每个寄存器只能以32位(字)进行访问 不允许...
通过寄存器操作可以实现对GPIO的高效控制。...3.1 寄存器操作实现取反 GPIO引脚的输出状态存储在ODR(输出数据寄存器)中,通过对该寄存器进行操作,可以实现引脚状态的修改。具体操作步骤如下: 读取当前ODR寄存器的值。...以下是本文的要点总结: GPIO引脚的基本概念和STM32的GPIO架构。 GPIO寄存器的功能和使用方法。 异或...
要配置引脚是开漏输出还是推挽输出模式可以使用GPIOx_CRL 和 GPIOx_CRH 寄存器。 (4)、输出数据寄存器 双MOS 管结构电路的输入信号,是由 GPIO“输出数据寄存器GPIOx_ODR”提供的,因此我们通过修改输出数据寄存器的值就可以修改 GPIO 引脚的输出电平。而“置位/复位寄存器 GPIOx_BSRR”可以通过修改输出数据寄存器的值...
BSRR(Bit Set/Reset Register):这个寄存器用于设置或清除GPIO引脚的输出状态。类似于ODR寄存器,每个引脚对应一个比特位,但BSRR寄存器具有更多的功能。比特位设置为1时,表示设置引脚为高电平输出;比特位设置为0时,表示设置引脚为低电平输出。同时,通过设置对应的比特位,可以将引脚设置为高电平或低电平输出的同时,将其它...
BRR寄存器, 控制管脚的低电平,低16位有效,写1 低电平; 特别的: F1和F4系列都有 ODR和BSRR,但F4 取消了BRR。所以为了代码通用,尽量不使用BRR,反正BSRR能完成. ODR、BSRR的使用区别: 你应该有过和我一样的疑问: ODR寄存器只用低16位,就能控制引脚的高、低电平,还能读寄存器的值,用以判断引脚电平状态; ...
ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平。 对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。写 0 ,无动作 ...
ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平。 对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。写 0 ,无动作 ...
4、ODR(Output Data Register) 用于设置或读取某个IO口输出低电平还是高电平,只有在输出模式下有效,前16位的各1位对应1个I/O口;后16位保留,始终为0。 ODR寄存器的结构 示例:在PA0为通用推挽输出模式、最大速度10MHz下,设置PA0为高电平,然后检查PA0的状态,执行对应的操作 ...