当前位置:   article > 正文

STM32F103(库函数)——点亮LED并且使用软件延时实现led闪烁_stm32f103库函数版本怎么写led.h

stm32f103库函数版本怎么写led.h

当我们学过51单片机之后就知道在51单片机中点亮一个LED很简单一句代码就可以实现。只需要将LED所连接的IO口拉低就可以点亮LED。

但是在STM32中,点亮LED确实比51要麻烦很多。

一样,在STM32中点亮LED也是属于基本的IO口的使用,所以每当我们需要点亮LED时就需要正确配置IO口。STM32的IO口相比51单片机而言要复杂很多,所以用起来也很困难。

下面就是点亮LED的代码,并且使用延时实现LED闪烁。

main.c

  1. #include "stm32f10x.h"
  2. #include "led.h"
  3. #include "delay.h"
  4. #include "sys.h"
  5. int main(void)
  6. {
  7. LED_Init();
  8. delay_init();
  9. while(1)
  10. {
  11. // GPIO_SetBits(GPIOB,GPIO_Pin_5); //点亮LED0
  12. // GPIO_ResetBits(GPIOE,GPIO_Pin_5); //关闭LED1
  13. // delay_ms(500); //软件延时500ms
  14. // GPIO_SetBits(GPIOE,GPIO_Pin_5); //点亮LED1
  15. // GPIO_ResetBits(GPIOB,GPIO_Pin_5); //关闭LED0
  16. // delay_ms(500); //软件延时500ms
  17. LED0 = 1; //关闭LED0
  18. LED1 = 0; //点亮LED1
  19. delay_ms(500); //软件延时500ms
  20. LED0 = 0; //点亮LED0
  21. LED1 = 1; //关闭LED1
  22. delay_ms(500); //软件延时500ms
  23. }
  24. }

led.c

  1. #include "led.h"
  2. void LED_Init(void)
  3. {
  4. GPIO_InitTypeDef GPIO_InitStructure;
  5. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);//设能PB和PE口
  6. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0->PB5 端口配置
  7. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  9. GPIO_Init(GPIOB, &GPIO_InitStructure); //根据参数设定参数配置GPIO
  10. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1->PE5 端口配置
  11. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度50MHz
  12. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  13. GPIO_Init(GPIOE, &GPIO_InitStructure); //根据参数设定参数配置GPIO
  14. }

led.h

  1. #ifndef __LED_H__
  2. #define __LED_H__
  3. #include "sys.h"
  4. #define LED0 PBout(5)
  5. #define LED1 PEout(5)
  6. void LED_Init(void);
  7. #endif

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/309531
推荐阅读
相关标签
  

闽ICP备14008679号