回到GPIO_TypeDef 这段代码,这个代码用 typedef 关键字声明了名为 GPIO_TypeDef 的结构体类型,结构体内又定义了 7 个 __IO uint32_t 类型的变量。这些变量每个都为 32 位,也就是每个变量占内存空间 4 个字节。在 c 语言中,结构体内变量的存储空间是连续的,也就是说假如我们定义了一个 GPIO_TypeDef ,...
gpio_typedef结构体中通常包含以下成员: 引脚编号:标识具体的GPIO引脚。 模式:设置引脚的工作模式,如输入、输出、中断等。 输出类型:对于输出引脚,设置输出类型,如推挽输出或开漏输出。 速度:设置引脚输出信号的速度。 上拉/下拉配置:配置引脚的上拉或下拉电阻。 数据方向:指示引脚是作为输入还是输出使用。 当前状态:...
部分程序:GPIOC->CRL 查看GPIOC的定义如下: #define GPIOC ((GPIO_TypeDef *) GPIOC_BASE) GPIOC_BASE是GPIOC模块的起始地址.GPIO_TypeDef 是一结构体,如下. typedef struct { vu32 CRL; vu32 CRH; vu32 IDR; vu32 ODR; vu32 BSRR; vu32 BRR; vu32 LCKR; } GPIO_TypeDef; 反馈 收藏 ...
GPIO_InitTypeDef 类型的结构体 typedef struct{ uint32_tPin; /*!<指定要配置的GPIO引脚。该参数可以是@ref GPIO_pins_define 的任意值 */ uint32_t Mode; /*!<指定所选引脚的工作模式。该参数可以是@ref GPIO_mode_define 的值 */ uint32_t Pull; /*!< 指定所选引脚的上拉或下拉激活。该参数...
GPIO_TypeDef*gpio_ptr;//声明gpio_ptr为GPIO结构体类型指针uint8_t port,pin;//声明端口port、引脚pin变量uint32_t temp;//临时存放寄存器里的值//根据带入参数port_pin,解析出端口与引脚分别赋给port,pingpio_get_port_pin(port_pin,&port,&pin);//根据port,给局部变量gpio_ptr赋值(GPIO基地址)if(7=...
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); /*第一个参数是用来指定 GPIO,取值范围为 GPIOA~GPIOG。 *第二个参数为初始化参数结构体指针,结构体类型为 GPIO_InitTypeDef */ 初始化 GPIO 的常用格式是: GPIO_InitTypeDef GPIO_InitStructure; ...
HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 先看HAL库中的ReadPin函数,HAL库中每个函数上方都有函数的相关说明,我们来一一解释一下: brief:简要说明一下这个函数的作用,此处表明ReadPin函数可以读取某个特殊的引脚的输入电平状态 param:是参数parameter的缩写,说明中一共有两个@param说明这个函...
GPIOMode_TypeDef 是用于定义 STM32 系列芯片中 GPIO(通用输入输出)模式的枚举类型。这个类型的定义通常在 STM32 的 HAL 库或者 CubeMX 自动生成的代码中出现。 以下是 GPIOMode_TypeDef 的成员变量名称及其涵义: GPIO_MODE_INPUT:输入模式。表示 GPIO 引脚被配置为输入,用于接收外部信号。 GPIO_MODE_OUTPUT_...
void GPIO_Set(GPIO_TypeDef* GPIOx, u32 BITx, u32 MODE, u32 OTYPE, u32 OSPEED, u32 PUPD) { u32 pinpos=0,pos=0,curpin=0; for(pinpos=0;pinpos<16;pinpos++) { pos=1<<pinpos; //一个个位检查 curpin=BITx&pos;//检查引脚是否要设置 ...