We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
#include "stm32f4xx.h"
void delay_ms(uint16_t dly){ uint32_t f; for(;dly>0;dly--) { for(f=250;f>0;f--); for(f=250;f>0;f--); }}
GPIO_InitTypeDef GPIO_InitStruct;int main(){
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOD,&GPIO_InitStruct); GPIO_SetBits(GPIOD,GPIO_Pin_4);
while(1) { GPIO_SetBits(GPIOD,GPIO_Pin_4); delay_ms(1000); GPIO_ResetBits(GPIOD,GPIO_Pin_4); delay_ms(1000); }}
Studying the blinky examples is excellent advice. You should also reconsider how to implement delay_ms(). I suspect that an argument of 1000 is really giving you a delay of under 20ms (in which case the LED might appear to be on all the time, if a little dim, because it's blinking very quickly). Did you try setting a breakpoint in your while() loop to see if the LED is blinking at all?