为什么STM32F411CEU6(Black Pill Board)内部下拉电阻不工作?
Why isn't internal pull-down resistor working on STM32F411CEU6 (Black Pill Board)?
我正在尝试配置STM32F411CEU6 板载按钮(PA0),但无法将其配置为使用内部下拉电阻。我当前的设置允许它在使用上拉电阻时触发中断,但是当我将其更改为下拉电阻时它不再起作用。如果有人能指导我指出我做错了什么,并能澄清我对这个过程的理解,我将不胜感激。我正在使用 STM32 标准外设库。我把我的 GPIO 初始化代码放在下面。
// enable clocks for the the KEY button (PA0) GPIO and
// the system configuration controller (SYSCFG) for GPIO interrupts
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
// initialize the GPIO pin, PA0, with an internal Pull-Down resistor
GPIO_InitTypeDef GPIO_Button_InitStructure = {
.GPIO_Pin = GPIO_Pin_0,
.GPIO_Mode = GPIO_Mode_IN,
.GPIO_PuPd = GPIO_PuPd_DOWN /* works with GPIO_PuPd_UP... */
};
GPIO_Init(GPIOA, &GPIO_Button_InitStructure);
/* ... Other interrupt enabling configuration stuff that is known to work here... */
黑色药丸板上的用户按钮连接在 PA0 和 GND 之间。用下拉配置配置 PA0 是没有意义的。在这种情况下,按下按钮不会影响 PA0 引脚的状态;在推送之前它是 logic 0,在推送期间和之后保持在 logic 0。很明显,硬件和软件都检测不到这个推送。
编辑:
与旧的蓝色药丸板不同,黑色药丸板的原理图在互联网上更难找到。我能够在他们的 official Github repo 上找到它。然而,使用内部或外部上拉电阻将按钮连接到 GND 并将 uC 引脚上拉到 logic 1 是一种常见的做法,所以我对黑色药丸板遵循同样的传统并不感到惊讶。
我正在尝试配置STM32F411CEU6 板载按钮(PA0),但无法将其配置为使用内部下拉电阻。我当前的设置允许它在使用上拉电阻时触发中断,但是当我将其更改为下拉电阻时它不再起作用。如果有人能指导我指出我做错了什么,并能澄清我对这个过程的理解,我将不胜感激。我正在使用 STM32 标准外设库。我把我的 GPIO 初始化代码放在下面。
// enable clocks for the the KEY button (PA0) GPIO and
// the system configuration controller (SYSCFG) for GPIO interrupts
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
// initialize the GPIO pin, PA0, with an internal Pull-Down resistor
GPIO_InitTypeDef GPIO_Button_InitStructure = {
.GPIO_Pin = GPIO_Pin_0,
.GPIO_Mode = GPIO_Mode_IN,
.GPIO_PuPd = GPIO_PuPd_DOWN /* works with GPIO_PuPd_UP... */
};
GPIO_Init(GPIOA, &GPIO_Button_InitStructure);
/* ... Other interrupt enabling configuration stuff that is known to work here... */
黑色药丸板上的用户按钮连接在 PA0 和 GND 之间。用下拉配置配置 PA0 是没有意义的。在这种情况下,按下按钮不会影响 PA0 引脚的状态;在推送之前它是 logic 0,在推送期间和之后保持在 logic 0。很明显,硬件和软件都检测不到这个推送。
编辑:
与旧的蓝色药丸板不同,黑色药丸板的原理图在互联网上更难找到。我能够在他们的 official Github repo 上找到它。然而,使用内部或外部上拉电阻将按钮连接到 GND 并将 uC 引脚上拉到 logic 1 是一种常见的做法,所以我对黑色药丸板遵循同样的传统并不感到惊讶。