查看: 4904|回复: 8

STM32F4 MDK新建使用库的工程

[复制链接]
  • TA的每日心情
    开心
    2015-7-14 09:10
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-6-18 10:48:58 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 wywywy 于 2013-6-18 11:01 编辑

    看到@奋斗哥 分享了好多STM32F4的资料,我也手痒痒了,跟大家分享一个基础的,不是原创,从别博客看的!希望对大家有帮助!

    STM32F4 MDK新建使用库的工程

    虽然一直ST用库做实验,但没有进行认真的总结。总是先添加价格文件,然后编译。能通过就完成,通不过就再添加别的文件。今天就一步步来梳理下建立用库工程的步骤。争取做到傻瓜式,让即使完全没用过MDK的人都能使用。

    第一步:到ST下载标准外设库和演示工程,也可以问卖你开发板的人要。我的库文件是淘宝商给的。可以通过我的百度网盘下载,地址:

    【http://pan.baidu.com/share/link?shareid=497853&uk=3087328531】

    下载后解压缩即可。此时可以进入各个目录简单熟悉下外设库里边的东西

    第二步,建立MDK工程

    打开MDK程序,会自动打开上次的工程。我们关掉它,然后再新建我们自己的工程:
    24130553-0329e30861a649c6b50aea25736b61c7.png
    24130634-eb7990eb3e2e4ad5b2da085304643ff0.png

    这时会弹出创建工程对话框,选择要保存的位置,然后选择你的MCU。

    这里我建立的是一个使用Tim定时器的工程,工程文件名为TIM。使用的MVU为STM32F4VG。昨晚这些选择点击就会弹出对话框,询问是否要将STM32F4系列MCU的启动文件复制到工程文件夹,点击确认让复制到咱们的工程文件夹里边。
    24130643-a55ac8e48968467ca94014164f568fde.png
    24130654-23732976575b438ab0da208257a791e7.png
    24224604-fa9602f0112740b8a527c29555bf656e.png


    这是我们就可以看到我们新建的工程了。

    24224619-16e0fbd0616c490f8279d80c62706415.png


    组织工程目录:
    24224625-b8174e48c6a943f9bd29d50643b849e0.png
    24224634-bde1d27c588946ca91a2192f93646090.png


    工程目录与实际文件目录没有必然的对应关系。我们可以根据自己需要添加。

    这里我定义的几个目录:user,存放主函数和一些功能函数。board:自己写的外设初始化和外设应用,periph存放ST标准外设库



    第三步,添加外设库到工程【重点】

    在第一步中解压后的文件夹中,进入\STM32F4-Discovery_FW_V1.1.0\Project\Peripheral_Examples\中。这里存放的是ST标准库的例程。我们需要在这里复制几个文件到我们的工程中。

    进入任一一个工程文件夹,我使用的是ADC3_DMA。找到以下几个文件,将其复制到我们的工程中去:

    stm32f4xx_conf.h    stm32f4xx_it.c   stm32f4xx_it.h  system_stm32f4xx.c

    其中system_stm32f4xx.c中定义了一些时钟初始化的函数,在刚才向工程中添加的启动文件会调用这里的函数。

    添加完这些文件之后,开始设置工程选项,在Project窗口中选择Target1之后在Project菜单中调出工程属性对话框:

    24224639-f416925ac80a47c29e0dd0e86a4d988d.png

    打开C/C++选项卡
    24224707-f633376058894b2f97530434bb0683fb.png

    24224723-8a88912da1194b8e890bea4557f19c44.png
    24224729-1686dba0e15349c68bcce1e78e5310d8.png

    这里要可以将外设库的inc文件夹、存放board目录中文件文件夹、还有组工程目录文件夹加入。

    我加入玩引用的最终效果:



    点击OK退出即可。

    之后我们就可以向工程中添加外设库文件了。添加文件跟刚才的组织工程目录一样,点击addfile,会弹出添加文件对话框。

    在右边对话框中定位到在刚才解压缩的文件夹中:\STM32F4xx_StdPeriph_lib v1.0.2\STM32F4xx_StdPeriph_Driver\src
    24224744-13c4167e54eb49748712e578a027f3e7.png




    选择需要的文件即可。因为我需要使用tim定时器,做PWM输出实验。所以除了tim库还要添加GPIO库。

    此外misc.c文件是所有工程都要添加的,rcc库是定义时钟所必需的,也一并将其添加到工程中。

    第四步:添加主函数文件

    File-》new  save  文件名可随意,后缀必需为.c。我命名为main.c

    在main.c中添加主函数定义和对公共头文件stm32f4xx_conf.h的引用。stm32f4xx_conf.h包含了对所有的外设库的引用。


    #include "stm32f4xx_conf.h"

    int main()
    {
      while(1);
    }

    保存之后,利用上边的方法将这个文件添加到工程的user目录中。

    最后的工程目录结构是这样的:
    24224749-da13680843a84aa496bde8cd014b1b6c.png



    此时,如果安键盘上的F5进行编译的话会报一堆错误:Undefined symbol assert_param

    这是因为我们还缺少一个红定义,库文件里边的一些条件编译选项需要这个定义才能用。我们打开工程属性菜单,重新定位到C/C++选项卡。添加宏定义:USE_STDPERIPH_DRIVER,

    重新编译即可。

    到此工程建立完毕。如果你还需要用到别的外设,只要将外设库文件加入到工程中即可。

    调试,编译,设置仿真器等部分不做介绍。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-6-18 11:19:19 | 显示全部楼层
    哈哈,楼主真是客气!共同学习~有好东西一起分享哈~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2015-9-1 22:24
  • 签到天数: 497 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-6-21 23:54:32 | 显示全部楼层
    收藏.......
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2013-10-12 21:02
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-7-25 15:25:12 | 显示全部楼层
    不错,这是个好东西呀!!!!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2013-11-10 15:57
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-7-28 22:16:53 | 显示全部楼层
    收藏。。。。。。{:soso_e113:}
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-10-9 10:25
  • 签到天数: 886 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-7-28 23:17:19 | 显示全部楼层
    楼主,我在仿真的时候遇到了问题,谢谢了,请看我的
    求助帖
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-3-4 20:22
  • 签到天数: 168 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-8-7 15:29:03 | 显示全部楼层
    虽然看到得有点晚,还是要感谢楼主啊!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-6-24 15:10
  • 签到天数: 27 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-8-7 20:30:40 | 显示全部楼层
    好东西一起学习啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-10-19 14:43
  • 签到天数: 681 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-2-10 18:05:18 | 显示全部楼层
    是好东西 很详细 谢谢分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-29 16:57 , Processed in 0.174659 second(s), 31 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.