1.STM32跑马灯实验

跑马灯实验很简单,其实就是两个LED,一个亮灭后延时后另一个亮灭。

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=0;
		LED1=1;
		delay_ms(300);	 //延时300ms(delay.c里支持ms和us)
		LED0=1;
		LED1=0;
		delay_ms(300);	//延时300ms
	}
 }

led.c
//推挽输出 适合做一些开关控制,应为推挽输出可以快速的切换0和1,例如继电器,led等
#include "led.h"
//初始化PB5和PE5为输出口.并使能这两个口的时钟		    
//LED IO初始化
void LED_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);	 //使能PB,PE端口时钟
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;				 //LED0-->PB.5 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 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);	  				 //推挽输出 ,IO口速度为50MHz
 GPIO_SetBits(GPIOE,GPIO_Pin_5); 						 //PE.5 输出高 
}
 

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

你可能感兴趣的:(STM32)