Hi everyone,
I want to turn on a LED on my STM32F4-discovery board
Here is the code :
int main() {
// Enable the GPIO Clock
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
// GPIO Configuration
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_14; // Led 6 Blue selected
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; // Mod out !
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; // 50 MHZ clock frequency
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; // Push pull mod
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; // Pull up
GPIO_Init(GPIOD, &GPIO_InitStruct);
// Turn on the LED
GPIO_SetBits(GPIOD, GPIO_Pin_14);
return 0; }
I'm using uvision 5.13.0.0
It compiles and flash succesfully but nothing happen after. I don't know what is wrong with this. I also tried with this :
STM_EVAL_LEDInit(LED6); STM_EVAL_LEDOn(LED6);
but there is no worked.
Can you help me ? Many thanks :)
I launched a debug session with your advises and it runs until System init function like you said.
175: LDR R0, =SystemInit 0x0800020C 4809 LDR r0,[pc,#36] ; @0x08000234
.
Then there is this code but i can't find a function to clear the LED :
LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP
Then with the system viewer i checked some registers. In RCC, i checked AHB1ENR and nothing is activated. In GPIOD, i checked BSRR register and nothing is activated too. It seems that clocks are not well initialized. Do you know what i must change to correct it ?
Many thanks !
One more thing that came to mind. Make sure you have the debug selected and not simulation. I think simulation might be the default mode. You should find the check box in the same place you unchecked run to main.
do some more single stepping and verify that the clock registers are really being written to.