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!