Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
10 years, 11 months ago.
STM32F401RE-Nucleo LED and BUTTON's problem
Hi,
I am trying to run a simple program on my new Nucleo board,
I made this program in order to turn on and off the green led when i press the user's button (the blue one), http://pastebin.com/9Q7KxsVA
STM32F401RE-Nucleo LED and BUTTON's problem
#include "stm32f4xx.h"
#include "stm32f4xx_nucleo.h"
#include "system_stm32f4xx.h"
#include "stm32f4xx_hal_gpio.h"
#include "stm32f4xx_hal_rcc.h"
GPIO_InitTypeDef GPIO_InitStructure;
int main(void) {
HAL_Init();
__GPIOA_CLK_ENABLE();
GPIO_InitStructure.Pin = GPIO_PIN_5;
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.Pull = GPIO_PULLUP;
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
__GPIOC_CLK_ENABLE();
GPIO_InitStructure.Pin = GPIO_PIN_13;
GPIO_InitStructure.Mode = GPIO_MODE_INPUT;
GPIO_InitStructure.Pull = GPIO_PULLDOWN;
GPIO_InitStructure.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(GPIOC, &GPIO_InitStructure);
while (1) {
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13)) {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
} else {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
}
}
}
But i am getting wrong result:
- when i press the user's button, nothing happen,
- when i keep pressing the user's button and i restart (by pressing the black button), i get good result,
It seems like the program checks the state of the blue button only at the first run, i don't know why,
Please help me if you have any ideas of what the problem comes from, or if you have a running program that switch the led on button press.
Thank you,
2 Answers
10 years, 11 months ago.
Works fine for me! The compiler cannot find stm32f4xx_nucleo.h. You do not need all the stm header files, all you need is mbed.h. Have you updated the stlink firmware?
10 years, 11 months ago.
Hi,
This mbed example do this in a simple way:
http://developer.mbed.org/teams/ST/code/Nucleo_read_button/
Regards.