/**************************************************************************** * Copyright: (C)2018 Î人ÁèÔÆÎïÍøÖÇ¿ÆÊµÑéÊÒ www.iot-yun.com * Author: GuoWenxue QQ: 281143292 * Description: ·Ü¶·STM32v5¿ª·¢°å LED¿ØÖÆ´úÂë * * ChangeLog: * °æ±¾ºÅ ÈÕÆÚ ×÷Õß ËµÃ÷ * V1.0.0 2018.05.10 GuoWenxue ·¢²¼¸Ã°æ±¾ ****************************************************************************/ #include "stm32f10x.h" void delay(uint32_t count) { for(; count != 0; count--) ; return ; } //#define MAIN_USE_API #ifndef MAIN_USE_API void led_gpio_init(void); /*º¯ÊýÉùÃ÷*/ int main(void) { led_gpio_init(); while(1) { GPIO_SetBits(GPIOB, GPIO_Pin_5); /* µãÁÁLED1 */ delay(0x3FFFFF); GPIO_ResetBits(GPIOB, GPIO_Pin_5); /* ÃðµôLED1 */ delay(0x3FFFFF); GPIO_SetBits(GPIOD, GPIO_Pin_6); /* µãÁÁLED2 */ delay(0x3FFFFF); GPIO_ResetBits(GPIOD, GPIO_Pin_6); /* ÃðµôLED2 */ delay(0x3FFFFF); GPIO_SetBits(GPIOD, GPIO_Pin_3); /* µãÁÁLED3 */ delay(0x3FFFFF); GPIO_ResetBits(GPIOD, GPIO_Pin_3); /* ÃðµôLED3 */ delay(0x3FFFFF); } } /* STM32v5 Èý¸öLED·Ö±ðÁ¬½Ó GPIO¿ÚµÄ PB5(LED1)¡¢PD6(LED2)¡¢PD3(LED3) */ void led_gpio_init(void) { GPIO_InitTypeDef GPIO_InitStructure; /* ʹÄÜGPIOµÄPBºÍPD ×éµÄʱÖÓ£¬ÒòΪÈý¸öLED ·Ö±ðÁ¬ÔÚPBºÍPD ×éÉÏ */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD , ENABLE); /*+-----------------------------------+ *| ÉèÖÃPB5(¼´LED1)GPIOģʽ | *+-----------------------------------+*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* ÍÆÍìÊä³öģʽ */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /* ·­×ªËÙ¶ÈΪ50MHz */ GPIO_Init(GPIOB, &GPIO_InitStructure); /*+-----------------------------------+ *| ÉèÖÃPD6(¼´LED2)GPIOģʽ | *+-----------------------------------+*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); /*+-----------------------------------+ *| ÉèÖÃPD3(¼´LED3)GPIOģʽ | *+-----------------------------------+*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); return ; } #else #include "stm32v5_led.h" int main(void) { init_led_gpio(); while(1) { turn_led(LED1,ON); delay(0x3FFFFF); turn_led(LED1,OFF); delay(0x3FFFFF); turn_led(LED2,ON); delay(0x3FFFFF); turn_led(LED2,OFF); delay(0x3FFFFF); turn_led(LED2,ON); delay(0x3FFFFF); turn_led(LED2,OFF); delay(0x3FFFFF); } } #endif