一、原理简介
1.1 原理图
本文主要实现点亮一颗led,那么我们只需把单片机的一个端口配置低电平或者高电平,从而实现led灯的开与关。
由原理图可知,我们只需把PB0端口拉低,即可点亮led,反之,拉高则熄灭led。
1.2 GPIO功能模式
以下是GPIO8种模式,可以看出一共就俩大类:输入与输出
由于我们是对GPIOB的PB0端口操作,并且可以自由配置该端口的电平设置,所以我们配置该端口为输出模式,即推挽输出模式。
二、代码实现和分析
2.1 代码实现
main.c
#include "stm32f10x.h" // Device header
#include "LED.h"
int main(void)
{
LED_Init();//初始化LED
GPIO_ResetBits(GPIOB, GPIO_Pin_0);//配置PB0置0
while(1)
{
}
}
LED.c
#include "stm32f10x.h" // Device header
void LED_Init(void)//
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//开启GPIOB的时钟
GPIO_InitTypeDef GPIO_InitSturcture;
GPIO_InitSturcture.GPIO_Mode = GPIO_Mode_Out_PP;//配置推挽输出
GPIO_InitSturcture.GPIO_Pin = GPIO_Pin_0;
GPIO_InitSturcture.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitSturcture);
}
LED.h
#ifndef __LED_H
#define __LED_H
void LED_Init(void);
#endif
2.2 功能分析(库函数)
库函数具体使用说明,请参考stm32的数据手册,这里不过多赘诉。
三、小结
本节我们实现了单片机控制LED灯,学会了对引脚最基础的配置和使用,请大家多多学习与利用。