STM32学习笔记(一) —— 建立HAL库工程模板

我们此处使用 STM32CubeMX 来创建HAL库工程模板,单片机型号使用 STM32F103RCT6

1.打开 STM32CubeMX

STM32学习笔记(一) —— 建立HAL库工程模板_第1张图片

2.创建工程

点击 File - New Project …

STM32学习笔记(一) —— 建立HAL库工程模板_第2张图片

选择芯片型号:
在搜索框中输入芯片型号,我们这里输入 STM32F103RCT6;
双击出现在右侧列表中的芯片

STM32学习笔记(一) —— 建立HAL库工程模板_第3张图片

3.做初始化配置

选择完芯片型号后,会进入如下界面

STM32学习笔记(一) —— 建立HAL库工程模板_第4张图片

选择System Core - SYS:
在 Debug 中可以选择使用SW或者JTAG调试接口,根据硬件连接选择,我们硬件使用的是SW接口(SWDIO,SWCLK 两线调试接口),所以这里选择 Serial Wire(SW)调试模式;
在Timebase Source 中默认使用 SysTick 定时器。HAL库中需要用到一个定时器来实现延时函数HAL_Delay(),一般默认使用SysTick定时器就可以了,当然也可以选择其他定时器

STM32学习笔记(一) —— 建立HAL库工程模板_第5张图片

选择 System Core - RCC:
选择晶振类型,我们这里均选择 Crystal/Ceramic Resonator。如果外部没有接晶振可以选择 Disable,如果单片机时钟直接由外部时钟提供可选择 BYPASS Clock Source

STM32学习笔记(一) —— 建立HAL库工程模板_第6张图片

切换到时钟配置界面

STM32学习笔记(一) —— 建立HAL库工程模板_第7张图片

配置系统时钟为 72MHz(STM32F103RCT6 最高),我们这里使用的外部高速晶振频率为8MHz,经过 PLL 9 倍频作为系统时钟,由于 STM32F103RCT6 中 APB1 时钟最高为 36MHz,需要进行2分频,APB2 时钟最高为 72MHz
STM32学习笔记(一) —— 建立HAL库工程模板_第8张图片

切换到项目管理界面进行配置,注意项目存放路径不能包含中文

STM32学习笔记(一) —— 建立HAL库工程模板_第9张图片

建议在Code Generator选项中勾选为每个外设都生成一对.c.h文件。

STM32学习笔记(一) —— 建立HAL库工程模板_第10张图片

如果不勾选,在生成代码时,会直接会将初始化外设的代码放在主函数中。比如我配置了串口功能,生成代码后会发现串口的初始化代码是放在main.c函数中的

STM32学习笔记(一) —— 建立HAL库工程模板_第11张图片

勾选之后,与串口相关的代码会放在单独的.c/.h文件中

STM32学习笔记(一) —— 建立HAL库工程模板_第12张图片

4.生成代码

STM32学习笔记(一) —— 建立HAL库工程模板_第13张图片

打开项目所在文件夹就可以找到创建的HAL库工程模板

STM32学习笔记(一) —— 建立HAL库工程模板_第14张图片

5.打开上述创建的 keil 工程,编译项目(Project - Rebuild all target files)

STM32学习笔记(一) —— 建立HAL库工程模板_第15张图片

Program Size: Code=2148 RO-data=372 RW-data=16 ZI-data=1632

Code 程序代码
RO-data 常量
RW-data 初值非0的全局变量
ZI-data 初值为0的全局变量 and 局部变量(栈) and 使用 malloc 动态分配的空间(堆)
STM32 内部 ROM (即 FLASH) 占用空间 Code + RO-data + RW-data
STM32 内部 SRAM 占用空间 RW-data + ZI-data

至此,HAL库工程模板创建完成

后续我们基于下面这款开发板来学习 STM32 常用外设功能,我们每篇会分硬件验证和仿真验证,没有开发板也能学习,不过最好需要有一块开发板进行实际验证,用其他开发板也可以,就是可能端口不对应,自行修改一下即可

开发板资料链接[ 百度网盘 ]: https://pan.baidu.com/s/1hyKbNY_SeFyaEXVWn3EfyA?pwd=rqt4
开发板购买链接[ 淘宝 ]: https://item.taobao.com/item.htm?id=764199162351

开发板实物图片:
STM32学习笔记(一) —— 建立HAL库工程模板_第16张图片

你可能感兴趣的:(STM32学习笔记,stm32)