学习stm32最好用一个专门的文件夹来存放所有的工程文件,例如,我建了一个叫做keil_study文件夹来存工程
接着我们在“keil_study”文件夹下创建工程文件夹,这里可以用中文,例如,我用“新建工程”这个名字
然后在“新建工程” 文件夹下创建五个子文件夹,分别是“startup”,“lib”,"obj",“user”,“app”,lib 文件夹下再创建一个 “CMSIS” 的文件夹
其中,
startup 文件夹用来存放启动文件,
lib 文件夹存放固件库中的 CMSIS 文件夹和STM32F10x_StdPeriph_Driver 文件夹两个文件夹中的文件,
obj 文件夹存放使用keil软件过程中编译的输出文件,
user 文件夹存放用户文件,例如main.c,
app 文件夹存放用户编写的外设驱动文件。
文件夹新建完毕后,从固件库中导入文件(我的固件库是v3.5版本的)
在startup 文件夹中放入以下文件
文件路径位于
“STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm”
在 lib 的 “CMSIS” 文件夹中放入以下文件
文件路径位于
STM32最新固件库v3.5\Libraries\CMSIS\CM3\CoreSupport
再将 “STM32最新固件库v3.5\Libraries” 路径下的 “STM32F10x_StdPeriph_Driver” 文件夹复制到
“lib” 文件夹下
在user 文件夹中放入以下文件(总共7个文件)
文件路径位于
STM32最新固件库v3.5\Project\STM32F10x_StdPeriph_Template (这个路径下有5个)
STM32最新固件库v3.5\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x (这个路径下有3个,system_stm32f10x.c重复,可以复制过来替换掉,也可以不复制)
下面开始打开keil软件 (我的是汉化版,对照着位置看就好了)
注意: 此处命名不能有中文!!!!!!!!!!
点击保存后进入下一界面
在这个界面中找到对应的芯片型号,我的是stm32f103ZE
点击ok后进入下面这个界面,直接叉掉就好了
改成下图这样
别急着点ok!!!,还要接着添加文件
其他的添加方法一样,文件都在对应的文件中 ,其中lib中的STM32F10x_StdPeriph_Driver文件夹只添加src中的文件(都是c文件),因为文件太多了,我这里只添加rcc和gpio两个常用文件
app文件夹中没有东西,所以不管他
添加好后点击ok,下图可以对照检查一下
距离新建完毕还差一步了!!!
点击魔术棒
两个宏,可直接复制-------USE_STDPERIPH_DRIVER,STM32F10X_HD
更正:下面这张图少了一个app文件夹路径(也就是四个路径,突然发现 “加入” 写成了 “假如” ,图片中的文字要更正为 “加入四个路径” )
下图为正确加入的路径和个数 (四个路径)
如果用的其他下载器,参照下载器的说明书
上一步选完后,一路ok
双击左边的main.c文件,会发现有很多代码,ctrl+A全选,然后delete,写下下面的代码
点击编译,等待一会后,下方出现0 errors,0 warnings,则说明新建工程成功
上文中没有在app文件夹中放入任何文件,因为这个文件夹中存放的是用户自己写的驱动程序文件,例如led.h,led.c,delay.h,delay.c等等。
最后,因笔者也是stm32的初学者,学习的板子是普中的玄武F103开发板,写这个的原因是怕自己遗忘,毕竟建工程还是挺麻烦的,若是有写的不对的地方,还请海涵,如若可以,麻烦私信告诉我,我会立即改正,谢谢大家。
更正:在魔术棒->两个宏图片中的第三步添加路径中,少添加了app文件夹路径,
未添加这个路径会导致,在app文件中的外设驱动文件无法被找到,具体报错信息如下
main.c(2): error: #5: cannot open source input file "led.h": No such file or directory