Stm32F4-Problema de inicio del descubrimiento

0

Estoy usando CoIDE y la biblioteca CMSIS. El problema es que mis programas se inician normalmente solo inmediatamente después de parpadear el tablero. Al desconectar y volver a conectar la placa al usb (solo para encender), el programa ya no se inicia. Al agregar una instrucción de retardo (para bucle) al comienzo de la función principal, la placa funciona perfectamente y los programas se ejecutan normalmente.

¿Cómo puedo hacer que mi programa se ejecute correctamente?

Aquí está mi código:

#include "stm32f4xx.h"
#include "stm32f4xx_tim.h"
#include "stm32f4xx_rcc.h"
#include "stm32f4xx_gpio.h"


int main(void)
{
    /*SystemInit();
    RCC_HSEConfig(RCC_HSE_ON);
    while(!RCC_WaitForHSEStartUp());*/
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
    for (int i=0;i<0;i++); 
    GPIO_InitTypeDef GPIO_InitStr;
    GPIO_InitStr.GPIO_Pin=GPIO_Pin_13;
    GPIO_InitStr.GPIO_Mode=GPIO_Mode_OUT;
    GPIO_InitStr.GPIO_PuPd=GPIO_PuPd_DOWN;
    GPIO_InitStr.GPIO_Speed=GPIO_Speed_2MHz;
    GPIO_Init(GPIOD,&GPIO_InitStr);


    GPIO_SetBits(GPIOD,GPIO_Pin_13);


}

El Led no se enciende sin:

for (int i=0;i<0;i++); 

¡Estaba pensando que era cuestión de Tiempo! : "Algo" necesita más tiempo para empezar o algo así! :RE Pero cuando reduje el contador hasta cero, eso también fue bueno ... el led se encendió: ¡D!

    
pregunta KwFx

1 respuesta

0

No sé cómo y por qué: D, pero el problema se resolvió simplemente declarando la "Estructura de inicio GPIO" fuera de la función principal.

GPIO_InitTypeDef GPIO_InitStr;
int void main(){...}
    
respondido por el KwFx

Lea otras preguntas en las etiquetas