STM32F4 Discovery建工程 (修改小船之前问题,以及对USE_STDPERIPH_DRIVER解释)
来源:互联网 发布:三维钢结构设计软件 编辑:程序博客网 时间:2024/05/15 07:34
STM32F4 Discovery第一步——新建工程
我用的是IAR来编辑,编译,调试工程的,因此首先介绍一下IAR。IAR Embedded Workbench for ARM 是一套支持ARM所有处理器的集成开发环境,包括项目管理器、编译器、C/C++编译器、汇编器、连接器和调试器。在IAR Embedded Workbench for ARM环境下可以使用C/C++和汇编语言方便的开发ARM嵌入式应用程序,比较其他的ARM开发环境,IAR Embedded Workbench for ARM具有入门容易、使用方便、代码紧凑等特点。通过其内置的针对不同的芯片的代码优化器,IAR Embedded Workbench for ARM可以为ARM芯片生成非常高效和可靠的FLASH/PROMable代码。不仅有可靠的技术,IAR Systems还为您提供专业的全球技术支持。(此段内容来自IAR网站)
然后我们一步步创建一个工程。
1.新建一个文件夹,命名为工程的名字,在这个文件夹里创建我们的 工程。为了更好的管理工程,我们现在此文件夹下新建三个文件夹,分别命名为user,inc和startup,如下图所示:
2.到st官网站上下载这块板子的库函数例程:
3.把STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\Include目录下的core_cm4.h
4.core_cm4_simd.h core_cmFunc.h core_cmInstr.h复制到inc目录下,
5.然后在把STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Include目录下stm32f4xx.h和system_stm32f4xx.h文件复制到inc目录下。inc目录下的文件如下图所示:
6.目录下。inc目录下的文件如下图所示:
7.STM32F4-Discovery_FW_1.1.0\Libraries\CMSIS\ST\STM32F4xx\Source\Templates\iar目录下的starup_stm32f4xx.s复制到startup目录下。
5.STM32F4-Discovery_FW_1.1.0\Libraries\CMSIS\ST\STM32F4xx\Source\Template目录下的system_stm32f4xx.c文件复制到user目录下
6.打开IAR,界面如下
7.点击project->Creat New Project,出现如下对话框:
点击OK,出现如下对话框:找到刚才建立的文件夹,打开,然后在文件名中写入工程的名字,点击保存。
8.然后右击Files下的工程,点击Add,按下图所示点击Add Group,出现如下对话框:输入user,点OK。重复步骤7,在建立两个Group,分别命名为startup和inc
9.右击inc->Add->Files,如下图所示:然后在对话框中打开刚才创建的inc文件夹,把其中的文件全部选中,如下图所示:点击打开。重复步骤8,在Group starup中添加文件夹startup中的startup_stm32f4xx.s文件,在Group user中添加文件夹user中的system_stm32f4xx.c文件,完成后如下图所示;
10.点击File下的图标新建一个文件,我们的主程序就写在这个文件中,点击保存,命名为main.c吧,保存在user目录下。
11.然后加到Group user下
12.右击工程Options弹出如下对话框,
Target页按上图所示设置点击C/C++Compler,点击Prerocessor页,按下图设置
STM32F4XX
xVECT_TAB_SRAM
USE_STDPERIPH_DRIVER
注意:为什么要添加 USE_STDPERIPH_DRIVER
在stm32f4xx.h中有这么一句
#ifdef USE_STDPERIPH_DRIVER
#include"stm32f4xx_conf.h"
#endif /* USE_STDPERIPH_DRIVER */
由此可只 添加USE_STDPERIPH_DRIVER宏定义是为了加载stm32f10x_conf.h文件。
这段代码的意思是,只有用预编译指令预定义了“USE_STDPERIPH_DRIVER”,才会将"stm32f10x_conf.h"包含进“stm32f10x.h”中,从而被"main.c"用到。这就解释了,为什么我们没有在“main.c”中包 含"stm32f10x_conf.h",而在编译之后却被包含进了"main.c"中,出现如图所示的情况。 "stm32f10x_conf.h"文件相当于一个开关文件,如果要用到STM32固件库驱动标准外设,则外设驱动头文件是必不可少的,如 “stm32f10x_gpio.h”。在"stm32f10x_conf.h"中我们通过代码#include"stm32f10x_gpio.h"来实现这个操作。
xVECT_TAB_SRAM作用:
xVECT_TAB_SRAM看样子应该是在SRAM中运行程序的时候指定中断位置的...
KEIL中有VECT_TAB_SRAM的定义xVECT_TAB_SRAM没有 应该差不多...
点击Linker勾选Override default选项,然后点击右面浏览按钮 弹出如下对话框,点击工程目录下,打开stm32f40x_flash.icf文件,如下图所示
弹出如下对话框,点击但工程目录下,打开stm32f40x_flash.icf文件,如下图所示
点击Debugger,Driver选ST-LINK
,Interface选择SWD
点击OK,工程设置完毕
- STM32F4 Discovery建工程 (修改小船之前问题,以及对USE_STDPERIPH_DRIVER解释)
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释(转)
- STM32F4-Discovery
- 作業系統之前的程式 for stm32f4 - discovery (0.2) - p103 模擬器
- STM32F4 discovery 开发板 UART1 问题
- stm32f4 discovery开发板usb全速修改测试
- stm32f4-discovery st-link no target connected问题
- stm32f4-discovery 简介
- stm32f4-discovery DMA
- STM32F4-Discovery资料汇总
- STM32F4-Discovery资料汇总
- STM32F4 DISCOVERY 驱动安装
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 关于STM32 MDK中USE_STDPERIPH_DRIVER问题的解释
- 2013android最新面试题
- OCP-1Z0-053-V12.02-659题
- 回答->记录 相关
- 抽象工厂模式
- SQL-开启事务处理
- STM32F4 Discovery建工程 (修改小船之前问题,以及对USE_STDPERIPH_DRIVER解释)
- 游戏服务器之网格屏索引
- NYOJ 776 删除元素(二分查找)
- Eclipse导入ApiDemos后R.java不自动生成的问题
- OCP-1Z0-053-V12.02-657题
- VC 2010下安装OpenCV2.4.4
- 更新 win8.1后 VS2012警告未能加载包“visual c++ package”
- HDU 1496 Equations (hash)
- 利用VisualSVN Server 和 百度云盘 构建个人SVN服务器,实现云同步