用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平。 对寄存器高 16bit 写1 对应...
管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平。 对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平。写 0 ,无动作 BRR 只写寄存器:只能改变管脚状态为低电平,对寄存器 管脚对于位写 1 相应管脚会为...
再把上拉、下拉输入的key引脚设置CRL、BSRR过程中,IDR和ODR的变化记录下来: 我这时才发现,其实我是在看浮空输入下(CRL复位为0x4代表浮空输入),改变BSRR,IDR和ODR会有什么变化 上拉模式下,设置BSRR前后寄存器变化: 此时IDR会同步; 再重新初始化引脚为浮空,查看更改BSRR的现象 太乱了,我决定把std库抛开,直接设置C...
GPIO对应的寄存器个数为7个,包括2 个 32位端口配置寄存器(CRL 和 CRH)、2 个 32 位端口数据寄存器(IDR 和 ODR)、1 个 32 位端口置位/复位寄存器(BSRR)、1 个 16 位端口复位寄存器(BRR)、1 个 32 位端口锁定寄存器 (LCKR)。下面将一一介绍。 3.1 2 个 32位端口配置寄存器(CRL 和 CRH) 作用:用来配...
GPIOx-》BSRR = (uint32_t)GPIO_Pin 《《 16U; } } 可见,不管是输出高还是输出低,都是对 BSRR 寄存器的操作。 三、BSRR、BRR、 ODR 之间的关系 配置BSRR , BRR 是为了对端口输出进行配置,而 ODR 寄存器也是用于输出数据的寄存器,一个 ODR 寄存器控制了一组(16位)的 GPIO 输出。因此,对 ODR 进行修改...
GPIO工作模式寄存器 端口输出数据寄存器(ODR) 该寄存器用于控制 GPIOx 的输出高电平或者低电平 端口置位/复位寄存器(BSRR) BSRR寄存器配置 该寄存器也用于控制 GPIOx 的输出高电平或者低电平 区别:首先 BSRR 是只写权限,而 ODR 是可读可写权限。 ODR寄存器,我们要设置某个 IO口电平,我们首先需要读出来 ODR 寄存器...
ODR、BSRR的使用区别: 你应该有过和我一样的疑问: ODR寄存器只用低16位,就能控制引脚的高、低电平,还能读寄存器的值,用以判断引脚电平状态; 那么, 为什么要存在一个BSRR! 还分高、低16位! 还不能读寄存器的值! 写了几年的STM32代码, 一直在使用ODR, 几乎没用过BSRR. 直到今天查找F1和F4的GPIO操作区别时...
BSRR:Bit Set/Reset Register,设置复位寄存器,用于对GPIO数据输出进行调制,通过只用调制BSRR来处理16位的GPIO接口输出。BSRR的低16位用于进行设置,高16位用于清除,即低16位在设置之后,会将GPIO的对应数据设置为1;高16位在设置之后,会将GPIO的对应数据设置为0。
用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态.ODR寄存器可读可写...
用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态.ODR寄存器可读可写...