当前位置:   article > 正文

STM32入门学习(开源)DAY1_stm32开源项目练手

stm32开源项目练手

<DAY1>流水灯的实现


实验要求:

(1)8个led每隔1秒轮流显示;

(2)1秒延时使用系统Systick定时器实现;

(3)8个led自左向右轮流显示后,再自右向左显示。然后依次循环。


(本实验所用开发板为STM32F10X系列的PZ6806L(普中的),采用库函数编程方法)


  1. //主函数代码
  2. #include "system.h"
  3. #include "SysTick.h"
  4. #include "led.h"
  5. int main()
  6. {
  7. SysTick_Init(72);
  8. LED_Init();
  9. while(1)
  10. {
  11. GPIO_ResetBits(LED_PORT,GPIO_Pin_0);//点亮第1个LED
  12. delay_ms(1000);
  13. GPIO_SetBits(LED_PORT,GPIO_Pin_0); //熄灭第1个LED
  14. GPIO_ResetBits(LED_PORT,GPIO_Pin_1);//点亮第2个LED
  15. delay_ms(1000);
  16. GPIO_SetBits(LED_PORT,GPIO_Pin_1); //熄灭第2个LED
  17. GPIO_ResetBits(LED_PORT,GPIO_Pin_2);
  18. delay_ms(1000);
  19. GPIO_SetBits(LED_PORT,GPIO_Pin_2);
  20. GPIO_ResetBits(LED_PORT,GPIO_Pin_3);
  21. delay_ms(1000);
  22. GPIO_SetBits(LED_PORT,GPIO_Pin_3);
  23. GPIO_ResetBits(LED_PORT,GPIO_Pin_4);
  24. delay_ms(1000);
  25. GPIO_SetBits(LED_PORT,GPIO_Pin_4);
  26. GPIO_ResetBits(LED_PORT,GPIO_Pin_5);
  27. delay_ms(1000);
  28. GPIO_SetBits(LED_PORT,GPIO_Pin_5);
  29. GPIO_ResetBits(LED_PORT,GPIO_Pin_6);
  30. delay_ms(1000);
  31. GPIO_SetBits(LED_PORT,GPIO_Pin_6);
  32. GPIO_ResetBits(LED_PORT,GPIO_Pin_7);
  33. delay_ms(1000);
  34. GPIO_SetBits(LED_PORT,GPIO_Pin_7);
  35. }
  36. }
  1. //LED初始化代码
  2. #include "led.h"
  3. /*******************************************************************************
  4. * 函 数 名 : LED_Init
  5. * 函数功能 : LED初始化函数
  6. * 输 入 : 无
  7. * 输 出 : 无
  8. *******************************************************************************/
  9. void LED_Init()
  10. {
  11. GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
  12. RCC_APB2PeriphClockCmd(LED_PORT_RCC,ENABLE);
  13. GPIO_InitStructure.GPIO_Pin=LED_PIN; //选择你要设置的IO口
  14. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //设置推挽输出模式
  15. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率
  16. GPIO_Init(LED_PORT,&GPIO_InitStructure); /* 初始化GPIO */
  17. GPIO_SetBits(LED_PORT,LED_PIN); //将LED端口拉高,熄灭所有LED
  18. }
  1. //LED.H的代码
  2. #ifndef _led_H
  3. #define _led_H
  4. #include "system.h"
  5. /* LED时钟端口、引脚定义 */
  6. #define LED_PORT GPIOC
  7. #define LED_PIN (GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7)
  8. #define LED_PORT_RCC RCC_APB2Periph_GPIOC
  9. void LED_Init(void);

有什么问题可以在评论区或者私信我,大家一起学习!

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

闽ICP备14008679号