2021-11-30 11:35 AM
I have tried to setup a minimal project where I configure the P-NUCLEO-WB55 board to trigger an interrupt (falling edge) when I press a button, that will toggle the blue LED (L1). I tried buttons SW1, SW2, SW3, all have the same problem: when I press the button, sometimes it triggers the IRQ, sometimes it doesn't. It seems when I wait longer between presses, it tends to work more often, when I press multiple times in a row, it almost never detects the presses after the first one.
When you hold the finger against the switch contacts from below, you see it toggles the L1 quickly. I can also toggle L1 by pressing my finger on the CN10 pins. Voltage fluctuation seems to be more reliably altered by skin conductivity than button press. This is for all buttons, two different P-NUCLEO-WB55 boards. Basically triggering IRQ works fine except by the buttons.
Does anyone else have this kind of problem?
Solved! Go to Solution.
2021-12-01 04:39 AM
Hello Chris,
have you activated the internal pull-up resistors of the GPIO ports?
On the STM32WB55 Nucleo Board, the push buttons are connected to the GPIOs without any additional external circuitry, i.e. without external pull-up resistors.
So that the pins are not floating, you should switch on the internal pull-up resistors of the GPIOs.
I hope my answer is helpful to you.
Best regards
Michael
2021-12-01 04:39 AM
Hello Chris,
have you activated the internal pull-up resistors of the GPIO ports?
On the STM32WB55 Nucleo Board, the push buttons are connected to the GPIOs without any additional external circuitry, i.e. without external pull-up resistors.
So that the pins are not floating, you should switch on the internal pull-up resistors of the GPIOs.
I hope my answer is helpful to you.
Best regards
Michael
2021-12-02 08:15 AM
Thank you, Michael, indeed that was the thing I was overlooking.
I went to System Core > GPIO, and for Pin PD1 (B3 on the P-NUCLEO-WB55) it was still set to "No pull-up and no pull-down". I set this to "Pull-up" and now it works correctly, i. e. it switches on button press, and does not switch when you accidentially touch contacts with your finger.
Thanks again!