STM32的GPIO引脚功能中,IDR(Input Data Register)和ODR(Output Data Register)分别扮演着关键角色。IDR允许我们查看特定GPIO引脚的当前电平状态,它就像一个读取器,告诉我们引脚是否处于高电平或低电平。而ODR则是用来设置或控制GPIO引脚的输出状态,它是执行实际输出操作的控制器。在你的代码示例中,GP...
STM32的GPIO引脚功能中,IDR(InputDataRegister)和ODR(OutputDataRegister)分别扮演着关键角色。IDR允许我们查看特定GPIO引脚的当前电平状态,它就像一个读取器,告诉我们引脚是否处于高电平或低电平。而ODR则是用来设置或控制GPIO引脚的输出状态,它是执行实际输出操作的控制器。在你的代码示例中,GPIOA-O...
在GPIO配置中,ODR、BSRR和BRR是相关寄存器,用于设置和清除特定的GPIO引脚。 ODR(Output Data Register):这个寄存器用于设置GPIO引脚的输出状态。每个引脚对应一个比特位,可以通过设置或清除相应的比特位来设置引脚的输出状态,高电平或低电平。比特位设置为1表示高电平输出,比特位设置为0表示低电平输出。 BSRR(Bit Set/...
GPIOB->ODR |= 1<<5; //设置PE5为推挽输出,并为高电平 GPIOE->CRL &= 0xff0fffff; GPIOE->CRL |= 0x00300000; GPIOE->ODR |= 1<<5; } //独立键盘初始化,LED初始化已将GPIOE的时钟开启 void key_init() { //设置PE2~4为上拉输入 GPIOE->CRL &= 0xfff000ff; GPIOE->CRL |= 0x0008...
STM32 GPIO 配置之ODR, BSRR, BRR 详解 用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平。 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管...
前面提到的双MOS 管结构电路的输入信号,由GPIO“输出数据寄存器GPIOx_ODR”提供,因此通过修改下图中输出数据寄存器的值就可以修改GPIO 引脚的输出电平,同时“输出数据寄存器GPIOx_ODR”的数值状态也是可读的。 而如果需要对输出电平信号进行原子操作,可以通过下图中“置位/复位寄存器GPIOx_BSRR”修改输出数据寄存器的值从...
32位数据寄存器:GPIOx_IDR,GPIOx_ODR 32位置位/复位寄存器:GPIOx_BSRR 16位复位寄存器:GPIOx_BRR 32位锁定寄存器:GPIOx_LCKR GPIO 寄存器详解 CRL 32位端口配置低寄存器(GPIOx_CRL) (x=A..E) 用于配置低8位的GPIO口,每个GPIO口占用4个比特位,用于设置引脚的模式、输入/输出类型、上下拉电阻等。
两个晶体管的控制通过GPIO端口输出类型寄存器(GPIOx_OTYPER)完成。将输出寄存器(GPIOx_ODR)的相关位写0可激活NMOS晶体管,强制I/O引脚接地。 将输出寄存器(GPIOx_ODR)的相关位写1可激活PMOS晶体管,强制I/O引脚接通VDD。 • 开漏输出模式: 开漏输出模式不使用PMOS晶体管,而是需要一个上拉电阻。
1,CPU写入位设置/清楚寄存器BSRR,映射到输出数据寄存器ODR 2,联通到输出控制电路(也就是ODR的电平) 3,ODR电平通过输出控制电路进入N-MOS管 -ODR输出1: N-MOS截止,IO端口电平不会由ODR输出决定,而由外部上拉/下拉决定 在输出状态下,输出的电平可以被读取,数据存入输入数据寄存器,由CPU读取,实现CPU读取输出电平 ...
//配置50HZ GPIOB->ODR&=~(0<<5);//PB.5置0 打开LED0 //打开LED1-PE.5 RCC->APB2ENR|=1<<6;//配置PE时钟使能 // GPIOE->CRL|=0x00F00000;//配置PE.5为50HZ // GPIOE->CRL&=0xFF3FFFFF;//配置PE.5推挽输出 GPIOE->CRL|=(1<<20); GPIOE->CRL|=(1<<21); GPIOE->CRL&=~(1<...