
Keil编译配置: 1、Output选项:选择Objects目录,定位在/Template/Output目录; 勾选Create HEX File,这个是下载到芯片中中的映像文件。3 ^4 Q) w, Z5 r. F& @+ |5 A 2、Listing选项:选择Listing目录,定位在/Template/Listing目录; g0 y7 ^. x* |- k 我想Listing中的文件关系到tag跳转定位,所以如果项目不进行一次编译是不能进行符号、函数的跳转的。" W* U$ p; H1 |, L, ^ D- o, x 3、C/C++选项:这个比较关键。首先是需要预定义两个宏:STM32F10X_HD宏,关系到把项目编译成哪种内存容量的程序,如果是高容量就写这个。0 n/ R J' |( S; L' g! p USE_STDPERIPH_DRIVER宏,这个用在stm32f10x.h头文件中,如果定义了这个宏则会自动包含stm32f10x_conf.h这个头文件。这个头文件其实是关于外设头文件的总包含头文件,有了这个头文件就不用把外设头文件一个个include了。这个包含链是这样的:stm32f10x.h--->stm32f10x_conf.h--->很多个外设头文件,也就是外设目录/inc目录下的头文件。所以程序中只需要#include <stm32f10x.h>这一个头文件即可。 宏定义可以在C头文件中定义,这里改在Keil中定义,会自动在以后编译时被作为参数一起编译。好处当然是方便进行芯片更换。 之后是比较麻烦的IncludePath 设置了。 , W3 _; f% i# b 需要添加四个路径包含:Libraries/CMISIS/CM3/DeviceSupport/ST/STM32F10x + Libraries/CMISIS/CM3/CoreSupport + Libraries/STM32F10x_StdPeriph_Driver/inc + /User( x5 ^- I- `4 P+ z2 E, M9 N 这些全都是实体目录,和Group无关。第一个路径上有启动文件和stm32f10x.h头文件和system_stm32f10x.c文件和.h文件。 第二个路径上有2个内核文件core_cm3.c及.h文件。6 o% ^2 t3 a; z( Q 第三个路径上有外设头文件。第四个路径上就是自己的程序文件。 如果不设置IncludePath或者设置不正确,那么编译时就不能正确找到项目中用到的所有文件导致编译出错。 其实这是因为所有文件中的#include 包含预处理这是写了简单的头文件名,不含路径,编译程序认为是在项目同一个目录里面,但实际上并不是所有文件都处于同一个目录,所以需要指明到哪里搜寻所需的文件。当然,如果不包含一些路径也可以编译,编译程序会自动到Keil安装目录下的include目录找,里面的文件可能不会是我们需要的或者说可能是旧的。$ s* z# y" L6 a6 e* ~6 Z0 u ———————————————— 版权声明:被大佬糊弄的只会点灯的小菜鸡 如有侵权请联系删除 ; S! u9 z7 _! x0 F& C- e' n 8 U& A' A6 W2 @ |
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南
适用于STM32微控制器的ΣΔ数字接口入门