首先新建工程文件夹(名称任意,不要带中文字符)
建立以下文件夹
各个文件的用途:
CORE ; STM32核心源码
FWLIB : 固件库函数
FUN : 自己编写的函数(如点灯)
OBJ : 编译所产生的中间文件和.hex程序
SYSTEM : 系统运行时的一些函数
USER : 用户目录
名称不必相同,主要目的是分类。
1,点击左上角project
2,点击
3,输入文件名(工程名)
4,选择芯片型号
然后......
ps:有没有弹出这个弹窗都是正常的(似乎并不影响编译)
(我是直接点确定不管的)
然后.......
红色的这个好像是因为CMSIS包版本过低导致的(之前解决过但是现在是新电脑的环境)
全部是绿色的才是正常的233333
好的,回归正题,点击OK。
搞定!(此帖完结(不是))
然后打开官方固件库STM32F4xx_DSP_StdPeriph_Lib_V1.9.0
将STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\STM32F4xx_StdPeriph_Driver
下面的inc与src文件夹复制粘贴到刚才的FWLIB文件夹下
复制~
粘贴~
将
\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm
目录下的startup_stm32f40_41xxx.s
复制到CORE下面
这个文件夹里存放的是启动文件,请根据自己的芯片信号选择。
将
\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Include
下的core_cm4.h ,core_simd.h ,core_cmFunc.h 以及 core_cmInstr.h 同样复制到 CORE 目录下面。
此时的CORE文件。
将
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
目录下的stm32f4xx.h 和 system_stm32f4xx.h 复制到 USER 目录下。我们以后会经常和这俩文件
打交道。
然后将
STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\STM32F4xx_StdPeriph_Templates
下面的.c与.h文件全部复制到USER目录下面。
Win11查看文件拓展名的方法
此时USER文件夹应有:
然后进入keil5的设置环节:
双击修改名称为工程名称
点击新建文件夹
选中FWLIB
点击右下角Add Files
定位到我们刚才建立的目录\LIB\src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后点击 Close.可以看到 Files 列表下面包含我们添加的文件。
选中USE文件夹
也将USE文件夹下的.c文件都添加进去。
选中CORE文件夹
将startup_stm32f40_41xxx.s添加进去
(这样就能找到啦)
然后记得点OK
然后记得点OK
然后记得点OK
然后点击魔法棒
c++标签页
在上方的Define添加USE_STDPERIPH_DRIVER
选择
添加所有包含.h文件的文件夹
output选项卡
选择OBJ文件夹(注意不是USER目录下的object文件夹)
编译
果然......
报错:
..\USER\stm32f4xx.h(115): error: #35: #error directive: "Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)"
直接复制粘贴搜索
打开stm32f4xx.h
翻译一下
然后发现更改不了文件
这是因为文件属性是只读
更改属性后
我用的是F407芯片,于是取消注释:
(这个其实就是keil不知道你在使用什么芯片,你需要给它一个声明)
然后
emmmmm
将stm32f4xx_fmc.c删除(此文件要f42或f43系列才用到)
不要误删了其他文件,不然会报错!!!
然后
emmm
只要不报错就行!
好了,怎么多个警告其实是stm32f4xx.h里的11581行-11585行重定义了还是什么的。注销掉就行了。
噢耶!
(像不像之前学c忘加 ; 然后报一堆错的场景)
搞定!