GPIOD->BSRR = data & 0xff00; GPIOD->BRR = ~data & 0xff00; 规则: 一、置GPIOD->BSRR低16位的某位为'1',则对应的I/O端口置'1';而置GPIOD->BSRR低16位的某位为'0',则对应的I/O端口不变。 二、置GPIOD->BSRR高16位的某位为'1',则对应的I/O端口置'0';而置GPIOD->BSRR高16位的...
BRR(Bit Reset Register):这个寄存器用于清除GPIO引脚的输出状态,将引脚设置为低电平输出。每个引脚对应一个比特位,比特位设置为1时,表示将引脚设置为低电平输出;比特位设置为0时,保持引脚的原始状态。 综上所述,ODR、BSRR和BRR寄存器在GPIO配置中起到了设置和清除GPIO引脚输出状态的作用。使用这些寄存器,可以通过设置...
假如你想在一个操作中对GPIOE的位7置'1',位6置'0',则使用BSRR非常方便: GPIOE->BSRR = 0x400080; 如果没有BSRR的高16位,则要分2次操作,结果造成位7和位6的变化不同步! GPIOE->BSRR = 0x80; GPIOE->BRR = 0x40; BSRR还有一个特点,就是Set比Reset的级别高, 就是说同一个bit又做Set又做Reset,最...
GPIO的寄存器BSRR和BRR GPIO的寄存器BSRR和BRR 端⼝位设置/复位寄存器BSRR:注:如果同时设置了BSy和BRy的对应位,BSy位起作⽤。位31:16 BRy: 清除端⼝x的位y (y = 0…15)这些位只能写⼊并只能以字(16位)的形式操作。0:对对应的ODRy位不产⽣影响 1:清除对应的ODRy位为0 位15:0 BSy: 设置...
GPIO对应的寄存器个数为7个,包括2 个 32位端口配置寄存器(CRL 和 CRH)、2 个 32 位端口数据寄存器(IDR 和 ODR)、1 个 32 位端口置位/复位寄存器(BSRR)、1 个 16 位端口复位寄存器(BRR)、1 个 32 位端口锁定寄存器 (LCKR)。下面将一一介绍。
我们想要想控制一个GPIO口的需要操作7个寄存器,分别是CRL,CRH,IDR,ODR,BRR,BSRR,LCKR我们对GPIO的操作本质上就是在对这些寄存器进行读写操作,以下是这些寄存器的名称: 首先,我们分析一下上面的结构电路。 1、保护二极管 保护二极管从它的名字就不难想到他是用来对系统进行保护的,通过两个二极管的导通可以防止引脚外...
特别的: F1和F4系列都有 ODR和BSRR,但F4 取消了BRR。所以为了代码通用,尽量不使用BRR,反正BSRR能完成. ODR、BSRR的使用区别: 你应该有过和我一样的疑问: ODR寄存器只用低16位,就能控制引脚的高、低电平,还能读寄存器的值,用以判断引脚电平状态;
用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态.ODR寄存器可读可写...
STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'。 GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的对应位被清'0';寄存器中的位置'0',则对它对应的位不起作用。