STM32F103四种方法实现的LED闪灯程序

本程序为点亮两个LED,分别为LED1和LED2,分别连接到几口GPIOB的0脚和1脚。

因此首先对GPIOB的0脚和1脚机型初始化。

先创建LED的驱动程序, LED.H和 LED.C

LED.H

#ifndef __LED_H
#define __LED_H	 
#include "sys.h"

//#define LED1 PBout(0)// PB0
//#define LED2 PBout(1)// PB1	
#define LEDPORT	GPIOB	//定义LED的IO接口
#define LED1	GPIO_Pin_0	//定义LED1 的IO接口
#define LED2	GPIO_Pin_1	//定义LED2 的IO接口

void LED_Init(void);//初始化 				    
#endif

LED.C

#include "led.h"

void LED_Init(void){ //LED灯的接口初始化
	GPIO_InitTypeDef  GPIO_InitStructure; 	    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);   //设置A,B,C三个端口使能时钟    
    GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0,1号端口)                        
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置IO接口工作方式为推挽输出       
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度50MHz
	GPIO_Init(LEDPORT, &GPIO_InitStructure);			
}
 
/*
选择IO接口工作方式:
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出
*/

创建MAIN程序
main.c

#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "led.h"


int main (void){//主程序
	RCC_Configuration(); //时钟设置
	LED_Init();
	while(1){
		
		//方法1:
		GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1
		delay_us(50000); //延时1秒
		GPIO_WriteBit(LEDPORT,LED1,(BitAction)(0)); //LED1接口输出低电平0
		delay_us(50000); //延时1秒
		
		//方法2:
//		GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //取反LED1
//		delay_ms(500); //延时1秒

		//方法3:
//		GPIO_SetBits(LEDPORT,LED1); //LED灯都为高电平(1)
//		delay_s(1); //延时1秒
//		GPIO_ResetBits(LEDPORT,LED1); //LED灯都为低电平(0)
//		delay_s(1); //延时1秒

		//方法4
//		GPIO_Write(LEDPORT,0x0001); //直接数值操作将变量值写入LED
//		delay_s(2); //延时1秒
//		GPIO_Write(LEDPORT,0x0000); //直接数值操作将变量值写入LED
//		delay_s(2); //延时1秒
	}
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值