ARM开发(1) 基于stm32的led跑马灯

一 跑马灯原理:
1.1 本实验实现2个led的跑马灯效果,即2个led交替闪烁。

1.2 实验思路:根据电路图原理,给led相关引脚赋予高低电平,实现电路的导通,使led灯发光。

1.3 开发环境 : MDK5 库函数版本开发 JLINK仿真
二 实验步骤:
2.1 led.h代码:
#ifndef __LED_H
#define __LED_H
“#include “sys.h”
#define LED0 PBout(5)// PB5
#define LED1 PEout(5)// PE5
void LED_Init(void);// 初始化
#endif
2.2 led.c代码(IO配置):
#include “led.h”
void LED_Init(void)
{

     GPIO_InitTypeDef  GPIO_InitStructure;

     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);    //使能PB,PE端口时钟 
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;         //推挽输出
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //IO速度为50MHz

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                //LED0-->PB.5端口配置
     GPIO_Init(GPIOB, &GPIO_InitStructure);                    //根据设定参数初始化GPIOB.5
     GPIO_SetBits(GPIOB,GPIO_Pin_5);                        //PB.5 输出高电平

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                //LED1-->PE.5端口配置
     GPIO_Init(GPIOE, &GPIO_InitStructure);                      //根据设定参数初始化GPIOE.5
     GPIO_SetBits(GPIOE,GPIO_Pin_5);                          //PE.5 输出高电平
    }

2.2 main.c代码(实现跑马灯效果):

    #include "sys.h"
    #include "delay.h"
    #include "usart.h"
    #include "led.h"
    int main(void)
    { 
        delay_init();     //延时
        LED_Init();         //led初始化
        while(1)
            {   //led0亮,led1灭
                LED0 =0;
                LED1=1;
                delay_ms(300);
                //led0灭,led1亮
                LED0 =1;
                LED1=0;
                delay_ms(300);

            }
    } 

三 接线测试:

3.1 与板子接线测试效果良好,2个led交替闪烁,达到跑马灯效果。

你可能感兴趣的:(嵌入式)