端口配置高寄存器(GPIOx_CRH) 端口输入数据寄存器(GPIOx_IDR) 端口输出数据寄存器(GPIOx_ODR) 5. GPIO 输出编程 测试有GPIOA1和GPIOA2设置为输出测试 CubeMX 配置 初始化函数 初始化函数 宏定义 #defineDONG_OUT_1_Pin GPIO_PIN_1#defineDONG_OUT_1_GPIO_Port GPIOA#define
GPIOx :其中x可以(A..G取决于所使用的设备)来选择GPIO外设 GPIO_Pin :指定要写入的端口位。此参数可以是GPIO_PIN_x之一,其中x可以是( 0..15 )。 PinState :指定要写入选定位的值。此参数可以是GPIO_PinState枚举值之一: lGPIO_PIN_RESET:清除端口Pin,低电平 lGPIO_PIN_SET:设置端口Pin,高电平 例子: ...
读取 GPIO 输入:c 复制代码 // 读取 GPIOA 引脚 5 的输入状态 GPIO_PinState pinState = HAL_...
(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//读端口的电平值 // 返回的是一个GPIO_PinState的值,0/1 typedef enum { GPIO_PIN_RESET = 0u, GPIO_PIN_SET } GPIO_PinState; /***/ 位带操作 位带操作(bit-banding)是一种通过特殊内存映射技术,直接对存储器(包括寄存器)中的某个位进行读写...
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx, uint16_t GPIO_Pin){GPIO_PinState bitstatus;/* Check theparameters */assert_param(IS_GPIO_PIN(GPIO_Pin));if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET){bitstatus = GPIO_PIN_SET;}else{bitstatus = GPIO_PIN_RESET;}...
voidHAL_GPIO_WritePin(GPIO_TypeDef *GPIOx,uint16_tGPIO_Pin, GPIO_PinState PinState) 这是函数的定义,接受三个参数:GPIOx 是指向 GPIO 端口的指针,GPIO_Pin 是要设置的 GPIO 引脚,PinState 是要设置的输出电平。 /* Check the parameters */asser...
参数GPIOx 指定端口号、参数 GPIO_Pin 指定引脚、 参数 PinState 指定引脚状态。 assert_param这个函数可以先不管,因为这个函数不影响我们理解程序的设计逻辑。首先我们能看到第一个if语句,翻译成人话就是说,引脚的状态不是低电平的时候就将引脚的值赋给端口的BSRR寄存器,否则就将引脚值左移16位在赋值给BSRR寄存器,...
现在我们来讲解第一个 HAL 库函数—— HAL_GPIO_WritePin 以下是函数定义: voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_t GPIO_Pin,GPIO_PinState PinState){/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState));if(PinState!=GPIO_PIN_RE...
uint8_t inputState =HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0); // 读取引脚状态 ``` 在以上代码示例中,首先使用 `__HAL_RCC_GPIOA_CLK_ENABLE()` 函数启用GPIOA引脚的时钟。然后,通过配置 `GPIO_InitStruct` 结构体中的引脚、模式和上下拉等参数,将GPIO引脚配置为输入模式,上拉。最后,使用 `HAL_GPIO_...
GPIO_InitStruct.Alternate = GPIO_AF7_USART3; HAL_GPIO_Init(GPIOD,&GPIO_InitStruct); /*Configure GPIO pins : Relay_Ctrl_Pin USB_PowerSwitchOn_Pin */ GPIO_InitStruct.Pin = Relay_Ctrl_Pin|USB_PowerSwitchOn_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; ...