当配置为GPIO_MODE_OUTPUT_PP【推挽输出】时,使用HAL_GPIO_ReadPin()可以正确读取出这个pin的状态值;当配置为GPIO_MODE_OUTPUT_OD时,使用HAL_GPIO_ReadPin()是读取不到这个pin的状态值的,无论这个pin设置为SET还是reset,读取出来都是reset的状态;
#define Pressed GPIO_PIN_RESET //在我的实际电路中,LED1为红色小灯 #define Red_Toggle() HAL_GPIO_TogglePin(Red_GPIO_Port , Red_Pin) #define Red_On() HAL_GPIO_WritePin(Red_GPIO_Port , Red_Pin,GPIO_PIN_SET) #define Red_Off() HAL_GPIO_WritePin(Red_GPIO_Port , Red_Pin,GPIO_PIN_RES...
0 << position); //}// 关闭指定位置的LEDvoid off(int position){ // GPIOC->BSRR = (1 << (position)); //通过设置BSRR寄存器,打开指定位置的LEDGPIO_SetBits(GPIOC, GPIO_Pin_0 << position);}// 主函数int main(void){ GPIO_Configuration(); //调用GPIO配置函数 int j; //...
1、 ((PIN) & (uint16_t)0x00) == 0x00 无论PIN为何值其相与的结果都为0x00;也就是这个等式恒成立成立; 2、 (PIN) !=(uint16_t)0x00) 如果PIN=0x00;就不成立;其他的PIN值都成立; 1&&2 表示两者都成立为真 否则为假;也就是PIN的值不能为0x00; 例如GPIO_SetBits(GPIOB,GPIO_Pin_5); ...
4.1.1 初始化GPIO_InitTypeDef结构体为默认值 4.1.2 将指定GPIO端口配置为指定参数 4.1.3 将指定的GPIO外设寄存器初始化为默认值 4.2 设置输出电平函数 4.2.1 将指定引脚设置为指定电平 4.2.2 将指定引脚设置为高电平 4.2.3 将指定引脚设置为低电平
作为输入功能时,支持读引脚值; 作为输出功能时,支持输出高低电平; 部分gpio 还负责接收中断; gpio 的使用依赖于 pinctrl: 点击查看大图 本文的关注点是 gpio driver --> gpiosubsystem core -> gpio consumer 这一路径,读者如果想更深入地了解 pinctrl 子系统,可以参考内核文档:Documentation/driver-api/pinctl.rst...
形参pin为pin脚号,实参为GPIO_PIN_x(x=0..15)。(2) 设置 AF 类型 gpio_af_set 当需要将GPIO设置为复用模式时,除了调用gpio_mode_se设置GPIO模式外,还需要调用函数gpio_af_set进行复用类型的设置。gpio_af_set函数原型为:void gpio_mode_set(uint32_t gpio_periph, uint32_t alt_func_num, uint32...
输入模式返回值为获取到的GPIO状态,也即是高低电平状态,在没有按键按下的时候,返回GPIO_PIN_SET,按键按下时候,返回GPIO_PIN_SET 代码语言:javascript 复制 @endverbatim*@{*//** * @brief Read the specified input port pin. * @param GPIOx where x can be (A..H) to select the GPIO peripheral fo...
GPIO_PIn。它用于选择带配置的GPIO端口,使用操作符“|”能够一次性选择多个引脚 GPIO_Speed。它用于设定GPIO端口的最大工作速度。 GPIO_Mode。它用来设置选中引脚的工作状态。 voidGPIO_AFIODeInit(void) 功能:将复用功能(重映射与EXTI设置)重设为默认值 注释:通过操作RCC_APB2RSTR(APB2外设复位寄存器)对其寄存器进...