获取HAL库
ST官网现在把自己单片机的所有资料都放到stm32cubeFx包里了,大家自行去官网下载就可以了。这里我下好了把百度云链接放到这里
链接:https://pan.baidu.com/s/1xMufYTUBduHklYWDB5hGkQ?pwd=dank
提取码:dank
新建keil工程
-
准备存放代码的文件夹,名字可以任意最好是英文,里面要存放用户代码、HAL库、工程文件、输出文件还有单片机启动代码和内核代码
-
接下来就可打开keil,新建工程–>路径选择自己刚才新建的Project文件夹,工程名字大家可以自己随便起也是尽量用英文。
-
接下来会出现选择芯片的界面大家根据自己的芯片型号选择即可(大家应该都装好package了吧。。)点击ok。
-
接着会弹出 Manage Run-Time Environment对话框,感兴趣的话可以点开看看里面的文件名字跟我们上面下载的STM32CubeF4里的文件名字是差不多的,但是这里下载会很慢所以我们用自己先前下好的。点击cancel。
-
现在我们基本的keil工程就建立好了,接下来就是把原厂的库文件和启动文件拷贝过来,首先找到HAL库文件夹文件目录为:STM32Cube_FW_F4_V1.26.0\Drivers\STM32F4xx_HAL_Driver
这里面的src 存放的是固件库的.c 文件,inc 存放的是对
应的.h 文件,直接拷走。
可以看到我又建立了一个HALLib子文件夹,这是为了我后续的学习准备的
-
接着我们要将STM32F4的启动文件和一些内核文件也拷贝过来文件目录如下:STM32Cube_FW_F4_V1.26.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 里有很多.s文件这些都是ST官方为STM32编写的启动文件(都是汇编写的。。。。一帮巨佬),根据自己的单片机挑选对应的文件拷贝到我们自己的Core文件夹里
-
跟上面一样继续拷贝文件到我们的Core文件夹,路径:STM32Cube_FW_F4_V1.26.0\Drivers\CMSIS\Core\Include 里面的文件全拷走(粗暴一点,以防万一)完成之后如下
-
接下来我们拷贝一些头文件和源代码拷贝过来,我放到User文件夹,也是根据自己的芯片型号选择。。目录:STM32Cube_FW_F4_V1.26.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include
-
继续拷贝ST给我们写的例程里面我们能用到的一些文件比如系统中断巴拉巴拉~~目录:STM32Cube_FW_F4_V1.26.0\Projects\STM32F4-Discovery\Templates\Inc 全拷走,还是放到User文件夹下
-
续上一步,这两步是转移相互配合的文件,,目录:STM32Cube_FW_F4_V1.26.0\Projects\STM32F4-Discovery\Templates\Src全拷走,还是放到User文件夹下
-
好了本地文件移植完毕,接下来把这些文件添加到Keil工程里吧(HAL库里的文件可以用到什么添加什么只添加.c文件。。。core文件里点全部添加)
-
然后要在工程里添加.h路径开始愉快的寻找吧,一定要把刚才所有移植过来的.h路径添加进去
-
接下来对于 STM32F4 系列的工程,还需要添加全局宏定义标识符,添加方法是进入 C/C++选项卡,然后在 Define 输入框连输入:USE_HAL_DRIVER,STM32F407xx。注意看逗号
-
更改编译文件存放位置(便于管理)
-
点击编译,这个过程挺慢的,,把这些报错的文件从工程中移除重新编译没有错误
-
接下来修改一下时钟配置。这边根据你使用的板子上外部时钟修改我用的是25M所以把8改成25就好了
-
结束。。估计也没人看这篇文章,,因为HAL直接用stm32cubemx配置更省力,,,我就纯粹是闲的
-
我测试的时候。。。单片机变砖了,检查之后发现问题出在SystemClock_Config()里面大家这里不要忘记修改啊,,,被自己蠢到。。。。