
Keil编译配置: 1、Output选项:选择Objects目录,定位在/Template/Output目录; 勾选Create HEX File,这个是下载到芯片中中的映像文件。 2、Listing选项:选择Listing目录,定位在/Template/Listing目录; 我想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>这一个头文件即可。 宏定义可以在C头文件中定义,这里改在Keil中定义,会自动在以后编译时被作为参数一起编译。好处当然是方便进行芯片更换。 之后是比较麻烦的IncludePath 设置了。 需要添加四个路径包含:Libraries/CMISIS/CM3/DeviceSupport/ST/STM32F10x + Libraries/CMISIS/CM3/CoreSupport + Libraries/STM32F10x_StdPeriph_Driver/inc + /User 这些全都是实体目录,和Group无关。第一个路径上有启动文件和stm32f10x.h头文件和system_stm32f10x.c文件和.h文件。 第二个路径上有2个内核文件core_cm3.c及.h文件。 第三个路径上有外设头文件。第四个路径上就是自己的程序文件。 如果不设置IncludePath或者设置不正确,那么编译时就不能正确找到项目中用到的所有文件导致编译出错。 其实这是因为所有文件中的#include 包含预处理这是写了简单的头文件名,不含路径,编译程序认为是在项目同一个目录里面,但实际上并不是所有文件都处于同一个目录,所以需要指明到哪里搜寻所需的文件。当然,如果不包含一些路径也可以编译,编译程序会自动到Keil安装目录下的include目录找,里面的文件可能不会是我们需要的或者说可能是旧的。 ———————————————— 版权声明:被大佬糊弄的只会点灯的小菜鸡 如有侵权请联系删除 |
STM32 GUI LTDC 最大像素时钟评估方法
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南