|
Keil编译配置:6 d( w: ?& d I7 g7 X; m1 K 1、Output选项:选择Objects目录,定位在/Template/Output目录;6 d6 H+ Q1 [+ \, t8 e) s9 f; ^ 勾选Create HEX File,这个是下载到芯片中中的映像文件。 2、Listing选项:选择Listing目录,定位在/Template/Listing目录;0 L3 S8 {( t `; z( S, H 我想Listing中的文件关系到tag跳转定位,所以如果项目不进行一次编译是不能进行符号、函数的跳转的。 3、C/C++选项:这个比较关键。首先是需要预定义两个宏:STM32F10X_HD宏,关系到把项目编译成哪种内存容量的程序,如果是高容量就写这个。 USE_STDPERIPH_DRIVER宏,这个用在stm32f10x.h头文件中,如果定义了这个宏则会自动包含stm32f10x_conf.h这个头文件。这个头文件其实是关于外设头文件的总包含头文件,有了这个头文件就不用把外设头文件一个个include了。这个包含链是这样的:stm32f10x.h--->stm32f10x_conf.h--->很多个外设头文件,也就是外设目录/inc目录下的头文件。所以程序中只需要#include <stm32f10x.h>这一个头文件即可。+ ?6 k4 {: ^& Q8 P' T+ x 宏定义可以在C头文件中定义,这里改在Keil中定义,会自动在以后编译时被作为参数一起编译。好处当然是方便进行芯片更换。 , [5 W6 Y! p& \ 之后是比较麻烦的IncludePath 设置了。7 [0 ^* V& d$ B. b( I 需要添加四个路径包含:Libraries/CMISIS/CM3/DeviceSupport/ST/STM32F10x + Libraries/CMISIS/CM3/CoreSupport + Libraries/STM32F10x_StdPeriph_Driver/inc + /User 这些全都是实体目录,和Group无关。第一个路径上有启动文件和stm32f10x.h头文件和system_stm32f10x.c文件和.h文件。6 \9 P3 s N' q! r% s$ u 第二个路径上有2个内核文件core_cm3.c及.h文件。 第三个路径上有外设头文件。第四个路径上就是自己的程序文件。 如果不设置IncludePath或者设置不正确,那么编译时就不能正确找到项目中用到的所有文件导致编译出错。; l7 r) X4 R# {4 h; P0 p# s# b- Q1 | 其实这是因为所有文件中的#include 包含预处理这是写了简单的头文件名,不含路径,编译程序认为是在项目同一个目录里面,但实际上并不是所有文件都处于同一个目录,所以需要指明到哪里搜寻所需的文件。当然,如果不包含一些路径也可以编译,编译程序会自动到Keil安装目录下的include目录找,里面的文件可能不会是我们需要的或者说可能是旧的。 ———————————————— 版权声明:被大佬糊弄的只会点灯的小菜鸡 如有侵权请联系删除1 n5 L' ]2 [3 V: a% H) ?/ A1 G ; n" f6 R- M M8 h6 J% l5 L/ |0 o |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
微信公众号
手机版