建立STM32工程的流程
作为初学者,在学习建立stm32工程这一步已觉得十分繁琐。跟着视频课将步骤捋了一遍。步骤上肯定还有简化的部分,比如建立文件夹、复制文件可以一起进行,keil里建组可以一起进行,配置可以一起进行。
所涉及到的固件库:STM32F10x_StdPeriph_Lib_V3.5.0
以下是具体笔记:
建立STM32工程
1.标准外设固件库介绍
htmresc:装图标的文件夹没什么用
libraries:库函数的文件
libraries-cmsis-cm3-devicesupport-st-stm32f10x-startup-arm这里的文件就是STM32的启动文件
libraries-cmsis-cm3-devicesupport-st-stm32f10x 这里的stm32f10.h,就是stm32外设寄存器描述文件;两个system文件是用来配置时钟的
libraries-cmsis-cm3-coresupport中的两个cm3文件是内核的寄存器描述
libraries-stm32f10x_stdperiph_driver-src 这里就是库函数源文件。其中misc是内核的库函数,其他的是外设库函数
libraries-stm32f10x_stdperiph_driver-inc 这里就是库函数头文件。其中misc是内核的库函数,其他的是外设库函数
project:官方提供的工程示例和模板
project-stm32template 其中conf文件时用来配置库函数头文件的包含关系的,两个it文件是用来存放中断函数的
utilities:官方评估版
库函数的发布文档以及使用手册
2.建立工程
1.新建一个存放工程的文件夹,例如名为STM32project,以后所有的工程都放这里
2.打开keil5-project-new μvision project-选择STM32project-新建一个文件夹存放本次工程如stm32工程模板-继续点进文件夹起个project保存
3.选择芯片型号,弹出的新建工程小助手关掉
4.工程已建好,但是工程文件是空的,需要添加工程必要文件
打开stm32工程模板文件夹
新建start文件夹,把固件库-libraries-cmsis-cm3-devicesupport-st-stm32f10x-startup-arm这里的文件粘贴过来
还是在start文件夹,把固件库-libraries-cmsis-cm3-devicesupport-st-stm32f10x里的stm32f10.h和两个system文件粘贴过来
还是在start文件夹,把固件库-libraries-cmsis-cm3-coresupport中的两个cm3文件粘贴过来
回到keil软件,把刚才复制的文件添加到工程里来
target1分支下新建start,右键,选择添加已经存在的文件到组里来,打开start文件夹,文件过滤器选择all files,选择startup_stm32f10x_md.s,剩下的.c和.h文件都要添加进来,总共start下是6个文件
这里的文件都是STM32里最基本的文件,是不需要修改的
所添加的.s文件根据STM32的型号选择
点击魔术棒按钮,打开工程选项,在C/C++里,include paths栏,点击右边三个点,新建路径,再点三个点的按钮,把start路径添加进来
回到stm32工程模板文件夹
新建user文件夹,main函数就放在这里
回到keil里,target右键,添加组,命名为user
user上右键,选择添加新文件,选择C文件,名字叫main,下面的路径选择user文件夹,点击add
进入main.c里,右键插入头文件,选择stm32f10x.h
写一个main函数,while死循环,注意文件最后一行必须是空行不然会报警告。编译一下看看是否0错误0警告
到这里没有添加库函数,如果只用寄存器开发,工程可以就建到这里
在keil扳手图标中设置字体、字号、tab size
在keil魔术棒按钮中选择debug,把默认调试器ulink改为stlink debugger;右边setting-flashdownload勾选reset and run。否则每次下载之后还需按一下板子上的复位键才能执行程序
回到stm32工程模板文件夹
新建library文件夹,用来存放库函数,将固件库-libraries-stm32f10x_stdperiph_driver-src 下的所有文件粘贴过来;再将固件库-libraries-stm32f10x_stdperiph_driver-inc 下的所有文件粘贴过来
回到keil,target右键,添加组,命名library
library右键,添加已经存在的文件,打开library,选中所有文件并添加,这样所有的库函数就都添加进来了
将固件库-project-stm32template 中conf文件和两个it文件粘贴到工程的user目录下
回到keil,在user组里,右键添加已存在的文件,把上面一步中的三个文件添加进来
最后还需要一个宏定义。在代码框里的头文件上右键,打开文件,滑倒最下面。在8296行复制 use_stdperiph_driver,打开魔术棒,C/C++-define栏粘贴刚才的字符串,这样才能包含标准外设库(库函数)
下面的头文件路径(include paths)把user、library也添加进来
最后可以点击三个箱子按钮,把library往上挪一下(不用改的放在最上面)
作者:wty25