点亮stm32开发板的led灯
简述 我使用的是STM公司stm32f103系列开发板,我们通过看原理图,对LED进行操作,以实现led灯的控制。(对于小白来说很有作用哈!废话不说,上料!)
1.查看开发文档,看led的电路图 以我的开发板为例(看图!): 各位小白!大家首先看一下电路图,是不是我们给它一个低电平,这个LED0或LED1会亮呢?当然,没毛病。所以,我们必须设置低电平让LED亮起来,设置高电平,它就会灭。(有函数控制,后面会说) 哦,对了。我们还需要看一下连接引脚图。如下:
LED0对应GPIOB5管脚 LED1对应GPIOE5管脚 2.使用软件keil编写代码 对于keil软件的使用就不详说,不懂就去学,这篇文章的重点不在于帮你搞软件。 编写步骤: 1.建立一个led.c和led.h文件 源文件我们对它进行初始化配置;头文件对它进行声明; 代码后边有注解,看不懂就留言,我来给你强行解释。
头文件如下:
#ifndef _LED_h
#define _LED_h
#include "stm32f10x.h"
#include "system.h"
void LED_Init(void);
#endif
源文件如下:
#include "LED.h"
#include "SysTick.h"
void LED_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_Init(GPIOE,&GPIO_InitStructure);
GPIO_SetBits(GPIOB, GPIO_Pin_5);
GPIO_SetBits(GPIOE, GPIO_Pin_5);
}
void LED_l()
{
while(1)
{
ledg=0;
ledr=1;
delay_ms(500);
ledr=0;
ledg=1;
delay_ms(500);
}
}
附录 1.这时候大家肯定有疑惑,ledg是个啥鬼?ledg是我宏定义的,(哈哈,想白嫖,不可能。) 2.GPIO_SetBits(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin),这是设置高电平函数。 3.GPIO_ResetBits(GPIO_TypeDef GPIOx, uint16_t GPIO_Pin),这是设置低电平函数。 4.我们也可以用这两个函数来控制灯的亮灭,实现起来很简单,你们就调用这两个函数 5.对于延时函数来说。如果没接触过晶振,我可以给大家一个比较接近1秒的数字。那就是来一个576次循环。比如for(int i=1;i<576;i++); 6.记着要多实操哈!
我个人认为: 所有的功能实现无非就是我对它这块空间的操作而已。
|