STM32F103ZET6+新建工程+点灯实验
目前,ST公司已经停止标准外设库的更新,转而推广HAL库和LL库。HAL库是由标准外设库升级而来的,学习标准外设库有助于对HAL库的理解,接下来我就简单介绍一下标准外设库的开发。
为了方便我准备了一个标准外设库的空工程模板,大家可以使用这个模板进行开发。空工程模板下载链接 STM32F103ZET6
下载空工程后,解压打开如下图所示
打开工程后,打开main.c文件如下图所示
接下来将带你进行ST32的世界,走进单片机的第一步就是点灯,就好像刚学C语言的时候,输出Hello World一样。
为了规范,先在工程文件中,新建一个文件,命名为BSP(或者叫其它的名字也行),主要是为了存放我们自己编写的一些模块
之后,在BSP的目录下,新建我们自己的第一个模块LED
回到工程,点击左上角的文件图标,或者按ctrl+N,新建一个文档
复制以下的代码,学过C语言的应该都看得懂
#ifndef __LED_H
#define __LED_H
#include "stm32f10x.h"
void LED_Init(void); //初始化
#endif
复制代码之后,点击左上角的保存图标,或者按ctrl+S,保存文件,会弹出一个窗口,找到你的工程文件在哪,并且找到BSP目录下的LED
将文件保存在LED目录下,并且命名为led.h,点击保存即可
接着重复刚才新建文档的操作,再新建一个led.c的文档,步骤如下
点击新建
复制以下代码,可以不用管以下代码,之后我会解释
#include "led.h"
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO_InitTypeDef类型的结构体变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //开启GPIOB的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //选择要使用的I/O引脚,此处选择PB5引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚输出模式为推挽输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚的输出速度为50MHz
GPIO_Init(GPIOB,&GPIO_InitStructure); //调用初始化库函数初始化GPIOB端口
}
点击保存,找到路径,命名,保存
回到主函数复制以下代码
#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
int main(void)
{
delay_init();
LED_Init();
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_5);// PB5设置位1,LED灯灭
delay_ms(1000); //延时1000ms
GPIO_ResetBits(GPIOB,GPIO_Pin_5); // PB5设置位0,LED灯亮
delay_ms(1000); //延时1000ms
}
}
现在我们已经把所有的代码都弄好了,只剩下最后一步了
我们是已经把文档代码都写好了,但工程是不会知道你的代码在哪里的,所以我们得把文件引进来
点击代码正上方的魔术棒,接着会弹出一个窗口
注意:点击Output,查看Create HEX File是否勾上,这个选项的作用是在编译代码时,会生成.hex后缀的工程文件,这也是我们下载到单片机上的文件
接着点击C/C++,找到IncludePaths,点击三点框
接着弹出一个窗口,这里就是所有文件的路径,我们点击右上角的虚框,下面就会出现一个框,在框的旁边有一个三点框,点击三点框
点击三点框后,会弹出一个窗口,在里面找到我们的工程,接着找到我们添加的LED模块的路径,点击确认
之后我们可以看到,我们添加的LED模块的路径已经添加进来了,如果你还有其它模块,再点击虚框就可以了,接着点击OK
别忘了,后面还有一个OK哦
现在文件的路径已经添加进来了,接下来把文件添加进来就行了
如图点击三个正方形,会弹出一个窗口,这里就是工程所包含的所有文件
点击虚框,下面会出现一个输入框,输入一个文件名名,该名字是添加到工程的文件名,最好是见名知义的
接着点击Add Files
弹出一个窗口,选择你的工程,之后选择你要添加的文件
找到你要添加的文件,只需要将.c文件添加进来就行了,.h文件在编译时,工程会自动帮你找到的
在最右边的方框内我们可以看到我们添加进来的文件,最后点击OK就行了
在我们的工程,我们可以看到添加进来的文件
最后所有的工作都弄好了,点击左上角的编译
编译成功后,如果你看到没有错误的话,恭喜你,你成功了,你进行踏进硬件这个坑了
如果有警告的话,是没事的,只要不出错就行了
最后我们把工程烧写到单片机上看看效果,如果你看到单片机在闪光,证明你点亮了你胜利之光,祝贺你
下一篇简单介绍一下,GPIO引脚口的原理~~~