读取STM32F4上的输入GPIO位
Reading input GPIO bit on STM32F4
我有一块STM32F429l-DISC1板。
我正在尝试读取 PC11 引脚上的值。这是 PORTC 设置:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitTypeDef GPIO_InitDef;
GPIO_InitDef.GPIO_Pin = GPIO_Pin_11;
GPIO_InitDef.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitDef);
这就是我提取值的方式:
uint8_t value = GPIO_ReadInputDataBit(GPIOC, 11);
当我将引脚连接到 GND 时,我希望获得 0 作为值,因为它是一个上拉...
但我总是得到 1.
我做错了什么?
谢谢!
将GPIO_ReadInputDataBit(GPIOC, 11);
更改为GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_11);
或GPIO_ReadInputDataBit(GPIOC, 1 << 11);
请勿使用 SPL。已经死了很久了。
你也可以参考这个以防C++ (Cpp) GPIO_ReadInputDataBit Examples
我有一块STM32F429l-DISC1板。
我正在尝试读取 PC11 引脚上的值。这是 PORTC 设置:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitTypeDef GPIO_InitDef;
GPIO_InitDef.GPIO_Pin = GPIO_Pin_11;
GPIO_InitDef.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
GPIO_InitDef.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitDef);
这就是我提取值的方式:
uint8_t value = GPIO_ReadInputDataBit(GPIOC, 11);
当我将引脚连接到 GND 时,我希望获得 0 作为值,因为它是一个上拉... 但我总是得到 1.
我做错了什么?
谢谢!
将GPIO_ReadInputDataBit(GPIOC, 11);
更改为GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_11);
或GPIO_ReadInputDataBit(GPIOC, 1 << 11);
请勿使用 SPL。已经死了很久了。
你也可以参考这个以防C++ (Cpp) GPIO_ReadInputDataBit Examples