读取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