STM32 Hal库版—介绍STM32和新建Hal库工程

引言

本专栏基于bilibili的《正点原子》所编写,微控制器型号是:stm32f103zet6,以下文件都根据正点原子官方发出来的。

一、STM32

1.1.STM32的介绍

STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器,常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器。

1.2.命名规则

本实验所用的控制器解读为:(STM32)32位的MCU/MPU;(F)基础型;(103)STM32基础型;(z)有144个引脚;(e)闪存容量为512KB;(t)封装为QFP;(6)温度范围:-40℃ ~ +85℃。
在这里插入图片描述

1.3.引脚分布

一共144个引脚:
在这里插入图片描述

二、新建工程前的准备工作

2.1.下载相关STM32Cube官方固件包

  • ST官方搜索STMCube
  • 开发板A盘资料:A盘->8,STM32参考资料->1,STM32CubeXX固件包

2.2.搭建开发环境

使用Keil uVision5搭建工程
在这里插入图片描述

2.3.新建Hal库版本MDK工程步骤

2.3.1.新建工程文件夹

在桌面新建工程文件夹,该文件夹可以随便命名,在该文件夹里面另外新建5个文件夹:D/M/O/P/U:
在这里插入图片描述
下面是各个文件夹该存放什么东西:

  • Drivers文件夹里面该有的文件,有一些需要在STM32CubeF1固件包里复制:
    在这里插入图片描述
    其中,在固件包复制了STM32F1xx_HAL_Driver,被选中的都是不要的,可以删除的,用不上的文件会影响编译速度:
    在这里插入图片描述

  • Middlewares文件夹:存放正点原子和其他第三方提供的中间层代码(组件/Lib等),如:USMART、MALLCO、TEXT、FATFS、USB、LWIP、各种OS、各种GUI等。

  • Output文件夹:存放编译器编译工程输出的中间文件,如:.hex、.bin、.o文件等。

  • Projects文件夹:存放编译器(MDK、IAR等)工程文件,本专栏主要用MDK,为了方便区分,因此在该文件夹下新建:MDK-ARM文件夹,用于存放MDK的工程文件。

  • User文件夹:存放用户编写的代码,如:Hal库用户配置文件、main.c文件、中断处理文件,以及分散加载文件等,下图是放User文件夹里的必要文件:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.3.2.新建一个工程框架

以下操作均在Keil内完成:

  • 新建工程
    例如:打开Keil后点击上面Project,再点击第一个新建工程
    在这里插入图片描述

  • 保存工程
    选择存放的位置,存放在上述配置好的文件夹的Project->MDK-ARM里面,并起一个合适的名字:
    在这里插入图片描述

  • 选择主控型号
    选择与芯片号相同的型号:
    在这里插入图片描述

  • 删除文件夹
    删除下图两个,因为之后会再次生成并放在Output文件夹里:
    在这里插入图片描述

2.3.3.添加文件

  • 设置工程名和分组名:点击上面三个正方体重叠的图案,按照下图添加文件,并更改名字:
    在这里插入图片描述

  • 添加启动文件
    继续点开小方块,在Startup的文件夹里添加启动文件,找启动文件如下图所示:
    在这里插入图片描述
    在这里插入图片描述

  • 添加User源码
    继续点开小方块,在User文件夹里添加下图两个文件:
    在这里插入图片描述
    在这里插入图片描述

  • 添加SYSTEM源码
    继续点开小方块,在SYSTEM文件夹里,添加下面三个文件夹中的.c文件:
    在这里插入图片描述

  • 添加STM32F1xx_HAL_Driver源码
    继续点开小方块,在STM32F1xx_HAL_Driver文件夹里,添加所需要的文件,如果全部都添加上去,会导致编译速度减慢:
    在这里插入图片描述

2.3.4.魔术棒设置

  • Target选项卡
    设置使用的编译器版本、外部晶振频率:
    在这里插入图片描述

  • Output选项卡
    设置Object输出文件夹,设置在Output文件夹里、生成.hex文件、输出浏览信息:
    在这里插入图片描述
    在这里插入图片描述

  • Listing选项卡
    设置Listing输出文件夹,输出在Output文件夹里:
    在这里插入图片描述

  • C/C++选项卡
    设置全局宏定义、优化等级、C99 Mode、设置头文件包含路径:
    在这里插入图片描述
    在这里插入图片描述

  • Debug选项卡
    设置使用的仿真器类型、选择的下载接口等:
    在这里插入图片描述

  • Utilities选项卡
    设置下载功能、下载算法、下载算法起始地址和大小等:
    在这里插入图片描述
    在这里插入图片描述

2.3.5.添加main.c,并编写代码

三、小细节

设置头文件包含路径的时候,一开始会有…\,是因为从放Keil5的工程软件里开始算。

在这里插入图片描述
例如:直接包含Drivers路径,在代码里引用该路径里的头文件,需要这样做:. /代表Drivers文件夹,再往下就是SYSTEM,再往下就是delay文件夹,delay.h文件就在delay文件夹里。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值