STM32的GPIO引脚功能中,IDR(Input Data Register)和ODR(Output Data Register)分别扮演着关键角色。IDR允许我们查看特定GPIO引脚的当前电平状态,它就像一个读取器,告诉我们引脚是否处于高电平或低电平。而ODR则是用来设置或控制GPIO引脚的输出状态,它是执行实际输出操作的控制器。在你的代码示例中,GP...
IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器。1>>4:1右移4位为0,所以,你这句 GPIOA->ODR|=1>>4 是没用的。1<<4:1左移4位为0x10,所以GPIOA->ODR|=1<<4 拉高的是PA4。你说能点亮,是因为它们默认就是高的……...
如上图所示,INT为输出数据寄存器(ODR),当INT为高电平时,经过反向器,2处为低电平,则G处为低电平,Us为VDD输入3.3V,此时Ug <Us,PMOS管导通,out输出引脚被拉高,为高电平,输出3.3V; 若INT为低电平时,经过反向器,2处为高电平,此时G点位高电平,Ug>Us,NMOS管导通,out引脚被拉低为低电平。 2、开漏输出 (1)...
在STM32中每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 根据数据手册中列出的每个I/O端口的特定硬件特征, GPIO端口的每个位可以由软件分...
3/ 5 输出数据寄存器(GPIOx_ODR) 在通用输出模式下,该寄存器可用来控制输出电平的高低;在复用模式下,ODR无效。此外,在上拉或下拉输入模式下,ODR可决定是上拉还是下拉。 3/6 位置位/复位寄存器(GPIOx_BSRR) 通过该寄存器,可以单独控制某个引脚的电平变化。因为向这个寄存器写0的结果是无操作,写1是置位或者复位...
GPIO 简单理解就是引脚,英文时(General Purpose Input/Output,通用输入输出)Set:置位 Reset:复位 Write:写 Bit:位 见名知意,这些函数的作用就是翻译过来的意思
GPIOB_ODR &= ~(1<<0); while (1); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 4 固件库函数驱动 LED 点灯 4.1 什么是固件库函数? 固件库是指“STM32 标准函数库”,它是由 ST 公司针对 STM32 提供的函数接口,即API (Application Program Interface),开发者可调用这些函数...
(GPIOD_ODR_Addr,n)//输出#definePDin(n) BIT_ADDR(GPIOD_IDR_Addr,n)//输入#definePEout(n) BIT_ADDR(GPIOE_ODR_Addr,n)//输出#definePEin(n) BIT_ADDR(GPIOE_IDR_Addr,n)//输入#definePFout(n) BIT_ADDR(GPIOF_ODR_Addr,n)//输出#definePFin(n) BIT_ADDR(GPIOF_IDR_Addr,n)//输入#...
一般来说,配置输出模式时,上下拉电阻无法与引脚产生硬件连接,是被旁路掉的,所以不会产生什么影响。