赞
踩
<DAY1>流水灯的实现
实验要求:
(1)8个led每隔1秒轮流显示;
(2)1秒延时使用系统Systick定时器实现;
(3)8个led自左向右轮流显示后,再自右向左显示。然后依次循环。
(本实验所用开发板为STM32F10X系列的PZ6806L(普中的),采用库函数编程方法)
- //主函数代码
- #include "system.h"
- #include "SysTick.h"
- #include "led.h"
- int main()
- {
- SysTick_Init(72);
- LED_Init();
- while(1)
- {
- GPIO_ResetBits(LED_PORT,GPIO_Pin_0);//点亮第1个LED
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_0); //熄灭第1个LED
- GPIO_ResetBits(LED_PORT,GPIO_Pin_1);//点亮第2个LED
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_1); //熄灭第2个LED
- GPIO_ResetBits(LED_PORT,GPIO_Pin_2);
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_2);
- GPIO_ResetBits(LED_PORT,GPIO_Pin_3);
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_3);
- GPIO_ResetBits(LED_PORT,GPIO_Pin_4);
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_4);
- GPIO_ResetBits(LED_PORT,GPIO_Pin_5);
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_5);
- GPIO_ResetBits(LED_PORT,GPIO_Pin_6);
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_6);
- GPIO_ResetBits(LED_PORT,GPIO_Pin_7);
- delay_ms(1000);
- GPIO_SetBits(LED_PORT,GPIO_Pin_7);
-
- }
- }
- //LED初始化代码
- #include "led.h"
-
- /*******************************************************************************
- * 函 数 名 : LED_Init
- * 函数功能 : LED初始化函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void LED_Init()
- {
- GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
-
- RCC_APB2PeriphClockCmd(LED_PORT_RCC,ENABLE);
-
- GPIO_InitStructure.GPIO_Pin=LED_PIN; //选择你要设置的IO口
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //设置推挽输出模式
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率
- GPIO_Init(LED_PORT,&GPIO_InitStructure); /* 初始化GPIO */
-
- GPIO_SetBits(LED_PORT,LED_PIN); //将LED端口拉高,熄灭所有LED
- }
- //LED.H的代码
- #ifndef _led_H
- #define _led_H
-
- #include "system.h"
-
- /* LED时钟端口、引脚定义 */
- #define LED_PORT GPIOC
- #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)
- #define LED_PORT_RCC RCC_APB2Periph_GPIOC
- void LED_Init(void);
有什么问题可以在评论区或者私信我,大家一起学习!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。