第一章:点亮LED灯

本节课配套笔记和源代码:链接: https://pan.baidu.com/s/1IKvOipEgr9k8QLQSfKqnQg 提取码: dh44
写在前面:
本教程是基于野火指南者这个开发板的,当然,你也可以去淘宝买个单片机最小系统来购买相应的模块,来结合面包板进行单片机的学习。

关于野火及其官方资料:
         在此之前请确定KEIL 5这个软件安装完毕。(资料盘里有所需要的驱动,软件,注册机这些,群里面也有,网上也有很多现成的安装教程)
        通常,市面上的教程都是从搭建一个工程文件开始的,本教程想用一种“超越”的方式,来快速入门,有问题?先放下,我们要在最短的时间里,通过简单的C语言编程,出现一个成果。让我们先从点亮一个LED灯开始!
        我打算的是从浅入深地学习,在最短的时间内和保证大家能够理解的情况下,点亮LED 灯,实现这样的一个实验效果,或许你在编程的过程中有疑问,别着急,在点亮LED灯之后,我将详细讲解每个细节。
注意:此教程是基于野火指南者这个开发板,如果是其他的开发板需要改变配置文件,请参照这篇文章: 链接:https://pan.baidu.com/s/1Kx6mJJYX_1w1c4LkumLBHg 提取码:9gqj
1.png



跟我一步一步来操作,干就完了!

首先,我们到01点亮LED灯\项目模板\Project\RVMDK(uv5)这个文件夹里找到
1、打开项目文件
1.jpg
2、打开main主函数
2.jpg
3.jpg
3、正式打代码咯!
4.jpg
1、定义一个GPIO(通用的输入输出头文件)的结构体变量。
5.jpg
对于结构体关键字是不是有点看不懂?实际上他就是一个重定义过的关键字而已,本质上还是struct,我们可以去看看他的源代码:
6.jpg
7.jpg
英文好的同学可以试着翻译一下,我们可以看到这个结构体一共有三个结构体成员:Pin引脚,Speed速率和模式,我们即将要给他们赋值。

2、打开相关GPIO的时钟
  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
8.jpg
3、配置GPIO并初始化。
模式为推挽输出
  1. GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
根据原理图我们知道这个电路板LED挂载在PB5的引脚上。
PB5的含义是GPIOB端口的第5个引脚
  1. GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
GPIO的速率
  1. GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
这个初始化函数
  1. GPIO_Init(GPIOB,&GPIO_InitStructure);
效果是这样的:
9.jpg
上图的GPIO_Pin_5等赋的值不知道哪里来的,还可以像之前的操作一样,直接Go To Defination of “XXX”,找到代码的定义部分。
到这里或许你不懂推挽输出,速率这些词是啥意思,别急,都说别急了哦,请跟着我打完代码,之后我会做出解释。

4、将相关的引脚拉低
  1. GPIO_ResetBits(GPIOB,GPIO_Pin_5);
另一端接3.3V的电源,另一边和GPIO相连的那一端应该拉低才能使LED导通从而点亮。
成功啦!!!!
10.png