假设蓝色内置按钮连接到GPIOX的输入引脚,而内置LED连接到GPIOX的输出引脚。您可以使用以下代码实现所描述的功能: #include <stm32f4xx.h> // 根据您使用的具体芯片型号进行适当的头文件包含 #de
GPIOx->CRH 高位(8-15)端口配置寄存器(x = A~ G,该寄存器偏移地址为:0x04): GPIOx->IDR 端口数据输入寄存器(x = A~ G,该寄存器偏移地址为:0x08):只读,可以读取IO口输入的值 GPIOx->ODR 端口数据输出寄存器(x = A~ G,该寄存器偏移地址为:0x0C):可写可读,可以设置IO口输出的值 注:当set和reset...
IDR寄存器,读取IO口的输入状态,相关库函数如下 uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx) ...
端口输入数据寄存器(GPIOx_IDR) (x = A..K)port input data register(I D R)2个32位数据寄存器 ...
#define GPIOI_IDR_Addr (GPIOI_BASE+16) //0x40022010 //IO口操作 #define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //输出 #define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //输入 #define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //输出 ...
( )寄存器的目的就是用来允许对 GPIO 寄存器进行的读 / 修改操作A.GPIOX_CRL和GPIOX_CRHB.GPIOX_BSRR和GPIOX_LCKRC.GPI
_IO uint32_t IDR; //---输入数据寄存器__IO uint32_t ODR; //---输出数据寄存器__IO ...
(n) BIT_ADDR(GPIOE_IDR_Addr,n) //输入#define PFout(n) BIT_ADDR(GPIOF_ODR_Addr,n) //输出 #define PFin(n) BIT_ADDR(GPIOF_IDR_Addr,n) //输入#define PGout(n) BIT_ADDR(GPIOG_ODR_Addr,n) //输出 #define PGin(n) BIT_ADDR(GPIOG_IDR_Addr,n) //输入#endif system.c #include...
牵扯到的寄存器有CCR_APBXENR,GPIOX_CRL,GPIOX_CRH,GPIOX_IDR,GPIOX_ODR,GPIOX_BSRR,GPIOX_BRR。ST公司已经把这些宏定义已经做好了,相应的名字对应的就是寄存器的名字。做过RAM9开发的都知道宏定义一边都是这样的: #define REGXXXXX (*(volatile 数据类型*)(数据类型)0xXXXXXXXXXX))...
2个 32 位的数据寄存器 IDR 和 ODR; 1个 32 位的置位/复位寄存器BSRR; 1个 16 位的复位寄存器 BRR; 1个 32 位的锁存寄存器 LCKR; 第二个参数是GPIO_Init:它的类型是GPIO_InitTypeDef *,指向结构体变量(GPIO_InitTypeDef )的指针,其中GPIO_InitTypeDef结构体包含了Pin,mode ,pull,speed等几个成员变量,分别...