嵌入式开发交流网论坛
标题:
keil环境下stm32标准库工程的创建听语
[打印本页]
作者:
admin
时间:
2018-6-8 14:59
标题:
keil环境下stm32标准库工程的创建听语
在keil下开发stm32嵌入式工程非常方便,此文讲解了一种从零开始创建标准库工程的方案,当然创建工程的方案没有固定的形式,此文仅供参考。
工具/原料
keil5软件
stm32标准库
stm32开发板和下载工具
方法/步骤
1
新建文件夹,在该文件夹下会保存所有的代码和工程文件,例如,创建名为FreeRTOS_project的文件夹。
2
在创建的文件夹中再新建三个文件夹,分别命名为CMSIS、stdlib和user,在CMSIS目录下新建startup文件夹,在user下新建inc和src文件夹。
[attach]94[/attach]
3
下载stm32的标准库,此处下载的是stm32f10x的标准库3.5.0版本。
[attach]95[/attach]
4
将标准库中STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下的inc和src复制到上面创建的stdlib文件夹下。
[attach]96[/attach]
5
将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x下的.c文件和.h文件复制到上面创建的CMSIS文件夹下。
6
将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下的文件复制到上面创建的CMSIS/startup目录下
[attach]97[/attach]
7
将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下的.c文件复制到上面创建的user/src下,将.h文件复制到user/inc下。
[attach]98[/attach]
8
打开keil,新建工程,建完后会自动创建两个文件夹和一个工程文件。
[attach]99[/attach]
9
右键点击Target1,在弹出的列表中选择Add Group来添加Group,此处添加startup、CMSIS、stdlib、user四个分组。
[attach]100[/attach]
[attach]101[/attach]
10
点击Manage Project Item,在此对话框中为分组添加文件
[attach]102[/attach]
11
点击Add Files,为分组添加对应的文件,添加后的效果如下
[attach]103[/attach]
[attach]104[/attach]
12
点击option for target按钮,对工程进行设置。
[attach]105[/attach]
13
在option for target对话框中,需要在Device标签选择正确的器件,在C/C++标签添加USE_STDPERIPH_DRIVER宏和添加头文件路径,在Debug标签选择合适的调试器,在Utilities中设置flash烧写。
[attach]106[/attach]
[attach]107[/attach]
[attach]108[/attach]
14
添加头文件路径方法,点击右下角三个点的按钮,在弹出的对话框选择右上角new,之后再次点击新建的那行右边的三个点的按钮添加即可
[attach]109[/attach]
[attach]110[/attach]
[attach]111[/attach]
15
修改main.c文件
复制过来的main文件中有许多eval开发板的内容,我们自己板子不需要这些,可以全部删除,之后可以添加自己的代码,编译下载运行。
[attach]112[/attach]
END
</p>注意事项
keil5不需要指定flash的density类型,会自动根据选择的器件决定
复制到usr/src中system_stm32f10x.c文件会跟cmsis中的重复,链接报多重定义错误,去掉一处即可
工程的group结构跟文件夹的结构没有对应关系,可以根据需要调整
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
举报
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/)
Powered by Discuz! X3.2