打印
[STM32F4]

【STM32F469I试用】2. IDE安装和Project Template建立

[复制链接]
2362|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zhangbin_abc 于 2015-12-20 22:35 编辑

写在前面的话
     每天早上六点钟起床,下午下班回到住的地方已经是夜晚八点,工作累不累,这个问题就不再回答了,好不容易等到双休日,终于可以喘口气了,可就是这么宝贵的两天,我还是在写分享帖,为了什么?因为心中还有对嵌入式技术的爱好和追求吧,还有想与大家分享心得的愿望,还有么?………..~~ 还有,就是没有女朋友,没有约会…….啊,多么痛的领悟!

     哈哈,不瞎扯了,进入正题。我今年基本都是在用交叉编译工具链和Makefile编译程序,有段时间没用IDE了,前面在用的时候还是keilMDK4,现在都到5了,时代变化太快了。以前用的是cortex-m3的内核,3.5版本的标准库。现在要重头来新的了。所以在这一篇跟大家分享一下IDE的安装和工程模板的建立。

一、Keil MDK 的安装
安装所需的软件列表:
1MDK516a.exe                                   keil MDK软件,我所用的版本号为5.16a,可以自行选择
2KEIL_Lic.exe                                    keil MDK的注册机,注册方法可以在网上查询
3Keil.STM32F4xx_DFP.2.7.0.pack        STM32F4系列芯片的器件库
4ARM.CMSIS.4.5.0.pack                     CMSIS架构相关软件包
5Keil.MDK-Middleware.7.0.0.pack         中间件的软件包
      我们在安装pack时可以先到keil的官网上将相关的pack下载下来,然后在pack installer界面中点击File——>Import,通过导入的方式安装,要比在线安装速度快。pack官网下载地址:http://www.keil.com/dd2/pack/#/eula-container
    这里因为是针对STM32F469控制器,所以我只下载了F4系列的DFP,并且这个pack是一定要安装的,否则在建立工程时,没有具体的芯片型号可供选择,导致无法创建。

二、工程模板的建立
准备软件:STM32F4xx_DSP_StdPeriph_Lib_V1.6.1标准库,由于比较大,这里不能上传,可以自行从网上下载。
首先说明本工程模板是根据自己的习惯来建立的,可能每个人的文件组织习惯不同,这里只作参考。

1、新建一个工程文件夹STM32F469,在该文件夹中新建CMSIS、FWLIB、PROJECT、USER四个子文件夹。

2、在CMSIS文件中新建inc和src两个文件夹:
   将STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates中的system_stm32f4xx.c 和
STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm中的startup_stm32f469_479xx.s复制到src文件夹中。
将STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Device\ST\STM32F4xx\Include中的stm32f4xx.h、system_stm32f4xx.h 和
STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\CMSIS\Include中的core_cm4.h、core_cmFunc.h、core_cmInstr.h、core_cmSimd.h复制到inc文件夹。
            

3、将STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Libraries\STM32F4xx_StdPeriph_Driver中的src和inc两个文件夹复制到FWLIB文件夹中。
              

4、我们稍后创建的工程保存在PROJECT文件夹中,这里不需要额外建立OBJ和LIST两个文件夹,因为当保存工程的文件夹指定后,Keil MDK会自动在该文件夹中创建Objects和Listings两个文件夹。

5、在USER文件夹中新建src和inc两个文件夹:
   将STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Project\STM32F4xx_StdPeriph_Templates中的main.c、stm32f4xx_it.c复制到src文件夹中;
   将STM32F4xx_DSP_StdPeriph_Lib_V1.6.1\Project\STM32F4xx_StdPeriph_Templates中的stm32f4xx_conf.h、stm32f4xx_it.h复制到inc文件夹中。
    以后我们新创建的源文件及其相应的头文件就可以分别放到USER文件夹下的src和inc文件夹中了。这里我新建了BSP.c和BSP.h文件。
              

6、打开Keil MDK软件,新建工程MyProject,创建工程的目录结构,并向相应的目录中添加C文件,这里就不一步一步说明了,如下图所示:

7、工程配置
1)由于STM32F469开发板外部主晶振是8MHz,所以将Target选项中的Xtal改为8MHz。

2)打开Output选项卡,勾选Creat Hex File,同时点击Select Folder for Objects,会发现在PROJECT文件夹中Objects文件夹已经建立。Listing选项卡中也建立了Listings文件夹,这里不再展示。
3)打开C/C++选项卡,按下图进行配置,添加宏定义和头文件路径,然后保存退出。
                  

8、重要文件的修改
1)stm32f4xx.h文件
由于我们所使用的开发板外部晶振为8MHz,而库文件中默认设置的为25MHz,所以需要修改相关宏定义。
#if defined(STM32F40_41xxx) || defined(STM32F427_437xx)  || defined(STM32F429_439xx) || defined(STM32F401xx) || \
    defined(STM32F410xx) || defined(STM32F411xE) || defined(STM32F469_479xx)
#if !defined  (HSE_VALUE)
//  #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
          #define HSE_VALUE   ((uint32_t)8000000)  
#endif /* HSE_VALUE */

2)system_stm32f4xx.c 文件
        STM32F469的内部运行频率最高可达180MHz,外部8MHz要经过一系列的分频和倍频,最终供给主时钟,在该文件中有几个重要的宏:PLL_M、PLL_N、PLL_P。我们根据STM32F469的参考手测可以得到:SYSCLK = 8MHz*PLL_N/(PLL_M*PLL_P)
这里要在system_stm32f4xx.c 中修改PLL_M=8  PLL_N=360  PLL_P=2。
#if defined(STM32F40_41xxx) || defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F401xx) || defined(STM32F469_479xx)
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
//#define PLL_M      25
#define PLL_M                8
#if defined(STM32F427_437xx) || defined(STM32F429_439xx) || defined(STM32F446xx) || defined(STM32F469_479xx)
#define PLL_N      360
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2
#endif /* STM32F427_437x || STM32F429_439xx || STM32F446xx || STM32F469_479xx */

三、工程模板测试
       编写一个简单的流水灯程序进行测试即可,比较简单,这里不再赘述。

沙发
zhangbin_abc|  楼主 | 2015-12-20 22:37 | 只看该作者
板凳
玛尼玛尼哄| | 2015-12-20 23:52 | 只看该作者
楼主截图时候标记红框的线条太粗了,看着好别扭,给个建议,下次减半。

使用特权

评论回复
地板
zhangbin_abc|  楼主 | 2015-12-21 08:17 | 只看该作者
玛尼玛尼哄 发表于 2015-12-20 23:52
楼主截图时候标记红框的线条太粗了,看着好别扭,给个建议,下次减半。

主要是想突出重点,谢谢您的建议,下次注意纠正。

使用特权

评论回复
5
anbaile| | 2017-10-25 11:05 | 只看该作者
谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

84

帖子

1

粉丝