博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于固件库建立一个STM32的工程模板
阅读量:4195 次
发布时间:2019-05-26

本文共 1864 字,大约阅读时间需要 6 分钟。

本文来简单的说一说如何通过固件库来建立一个STM32工程模板。

一、前期准备

下载STM32官方固件库,可以去ST官网下载,也可以百度收索下载:【固件库】STM32F10x_StdPeriph_Lib_V3.5.0.zip

集成开发环境环境 :MDK5.15

二、建立工程模板

1、建立工程目录结构,从固件库中移植相关文件。

首先建立一个Demo的文件夹,在这个文件夹中建立如下图所示的几个文件夹:

接下来向各个文件夹中添加文件:

在Doc文件加下添加一个Readme.txt的文本文件,这个文件主要是用来作为整个工程的说明文件。

在Libraries文件加下有如下图两个文件夹:

在CMSIS文件夹下,内容如下图所示:

其中core_cm3.c和core_cm3.h这两个文件来自于固件库的Libraries\CMSIS\CM3\CoreSupport这个目录下,其他文件夹和文件来自于固件库Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x这个目录,在startup文件夹下的文件如下图所示:

这些文件来自于固件库startup目录下的arm目录。

在STM32F10x_StdPeriph_Driver文件夹下的内容如下所示:

这两个文件及文件夹的内容来源于固件库的Libraries\STM32F10x_StdPeriph_Driver这个目录下。

在Project这个目录下建立两个文件夹如下所示:

在User目录下,内容如下图所示:

以上这些文件来自于固件库的Project\STM32F10x_StdPeriph_Template这个目录当中。

最后在工程的根目录中添加一个名为keilkill.bat的批处理文件,主要用来对工程编译链接中生成的中间文件进行清理的。它的内容如下所示:

del *.bak /sdel *.ddk /sdel *.edk /sdel *.lst /sdel *.lnp /sdel *.mpf /sdel *.mpj /sdel *.obj /sdel *.omf /s::del *.opt /s  ::不允许删除JLINK的设置del *.plg /sdel *.rpt /sdel *.tmp /sdel *.__i /sdel *.crf /sdel *.o /sdel *.d /sdel *.axf /sdel *.tra /sdel *.dep /s           del JLinkLog.txt /sdel *.iex /sdel *.htm /s::del *.sct /sdel *.map /sexit
2、通过MDK软件建立工程
打开MDK软件,选择新建工程,如下图所示:

因为我的板子上的芯片是STM32F103VET6,所以在芯片中做如下图选择:

之后建立工程的目录结构,并在每个目录下添加指定的文件:

目录结构体如下图所示:

在STARTUP目录中添加工程中Libraries\CMSIS\startup这个目录的startup_stm32f10x_hd.s这个文件,

在CMSIS中添加工程的Libraries\CMSIS这个目录中的所有文件,

在FWLIB中添加工程的Libraries\STM32F10x_StdPeriph_Driver\src这个目录的所有文件,

在USER目录中添加工程的User这个目录下的所有文件,

在DOC目录下添加工程Doc目录下的Readme.txt文件。

修改USER目录下的main.c文件的内容如下:

#include "stm32f10x.h"/**  * @brief  Main program.  * @param  None  * @retval None  */int main(void){  /* Infinite loop */  while (1)  {  }}
然后通过Options for Target选项卡来配置整个工程具体如下:

其中Select Folder for Objects选择的文件夹是工程的Project\Objects这个文件夹。

其中Select Folder for Listings选择的文件夹是工程的Project\Listings这个文件夹。

在Include Paths中主要是添加工程中用到的头文件的顶层目录,如下所示:

至此,整个模板工程建立完毕。

3、编译整个工程

如下图所示:

编译结果如下:

你可能感兴趣的文章
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
kermit的安装和配置
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>
Openstack Heat Project介绍(转)
查看>>
How to Perform an Upgrade from Icehouse to Juno(ice升级到juno)
查看>>
高扩展性网站的50条原则(转)-思维导图
查看>>
解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists
查看>>
构建OpenStack的云基础架构:ManageIQ(转)
查看>>
云管理软件 ManageIQ(转)
查看>>
CentOS 7.0,启用iptables防火墙(转)
查看>>
DISCUZ浅析之COOKIE篇
查看>>
实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)
查看>>