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

跟我一步一步来操作,干就完了!
首先,我们到01点亮LED灯\项目模板\Project\RVMDK(uv5)这个文件夹里找到
1、打开项目文件
2、打开main主函数


3、正式打代码咯!

1、定义一个GPIO(通用的输入输出头文件)的结构体变量。

对于结构体关键字是不是有点看不懂?实际上他就是一个重定义过的关键字而已,本质上还是struct,我们可以去看看他的源代码:


英文好的同学可以试着翻译一下,我们可以看到这个结构体一共有三个结构体成员:Pin引脚,Speed速率和模式,我们即将要给他们赋值。
2、打开相关GPIO的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
复制代码
3、配置GPIO并初始化。GPIO的速率这个初始化函数效果是这样的:
4、将相关的引脚拉低另一端接3.3V的电源,另一边和GPIO相连的那一端应该拉低才能使LED导通从而点亮。
模式为推挽输出
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
复制代码根据原理图我们知道这个电路板LED挂载在PB5的引脚上。
PB5的含义是GPIOB端口的第5个引脚
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
复制代码GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
复制代码GPIO_Init(GPIOB,&GPIO_InitStructure);
复制代码
上图的GPIO_Pin_5等赋的值不知道哪里来的,还可以像之前的操作一样,直接Go To Defination of “XXX”,找到代码的定义部分。
到这里或许你不懂推挽输出,速率这些词是啥意思,别急,都说别急了哦,请跟着我打完代码,之后我会做出解释。
4、将相关的引脚拉低
GPIO_ResetBits(GPIOB,GPIO_Pin_5);
复制代码成功啦!!!!
