# 新建 HAL 库工程的方法

由于有小姐姐反反复复的问 CubeMX 如何新建工程,网上的教程版本又太老,故在此记录一下
下面以 STM32F407ZGT6 为例子

# 第一步:新建工程,选择芯片型号

点击 file, 然后点击 new project, 或者直接 按下快捷键 CTRL+N

就会进入下面这个界面

这里就是芯片选择型号的界面,可以使用 鼠标滚轮 或者 直接拖动滑动条 来查找芯片型号,当然我更喜欢直接搜索,这样子会更快一些
STM32 一个系列的芯片会有不同型号,代表不同封装,不同功能以及引脚数... , 这一块需要你自己去查看芯片上的芯片型号
然后双击进去,进入这个界面

# 第二步:配置时钟

STM32 有内部振荡器,可以自己产生时钟,还可以使用外部晶振产生时钟。这里我选择外部晶振作为时钟

接着配置时钟树,这个需要查看原理图才能知道,当然使用直插的晶振的板子直接看板子上的晶振也能知道 晶振的频率

如果使用开发板要注意,开发板上不止一个晶振,建议直接查看原理图

确定晶振后,修改 input frequency 的值,默认一般是 25MHz 的位置
alt
图上粉红色处修改成 外部晶振的频率,绿色处修改为 HSE, 红色处 配置为 PLL 锁相环使能,
黄色处为时钟主频最大为 168MHz, 这里我直接拉满,改完后敲击回车,即可生成所需呀的主频.
系统时钟主频直接看情况配置。其他参数,等以后熟悉 RCC 配置再具体去修改.
最终的时钟配置界面

# 其他配置,生成工程

敲黑板
除了这些东西之外,还需要配置一下 SYS 选项卡里的 Debug 项,
改为 Serial Wire, 防止芯片下载一次就自闭

剩下的就是工程杂项配置了
敲黑板
工程名 和 工程路径绝对绝对不能有中文
开发软件 选择 keilv5.27

2021.11.17 更新
开发软件取决于使用的 keil 版本

  • 如果使用 MDK527 以下的选择 kei 即可
  • 如果使用 MDK527 以上可以选择 keil5.27
  • 如果使用 MDK532 以上可以选择 keil5.32

建议勾选上生成独立的 .c .h , 要不然代码会出现在一个文件夹下,
如果生成一次就不在使用 CubeMX 了,那么建议直接,选择复制所有 HAL 库文件,
如果后面还要使用 CubeMX 生成则可以考虑,选择仅复制所需文件,这样子文件所占空间会比较小,编译起来也比较快
最后一个选项是直接把库文件的所在位置放到 keil 的 编译链接里,不复制任何文件到 当前工程中,这样子可以大大的节省存储空间,和提升编译速度
但是无法跨放到其他人的电脑或者移动到其他位置上进行编译。可移植性比较差

# THE END

keil 上基本就没有什么需要特别配置的地方,直接编译下载就好了.
创建 5 分钟,编译两小时 (没这么夸张)

编译通过后,可以之后可以随便点亮一个 LED, 看看是不是没有问题

好了,至此本教程结束,以上仅代表个人观点,如有错误,望诸位斧正


大道五十,天衍四十九,人遁其一!