STM32编译前置条件配置

devtools/2024/9/25 4:29:17/

本文基于stm32f104系列芯片,记录编程代码前需要的操作:

添加库文件

在ST官网下载标准库STM32F10x_StdPeriph_Lib_V3.5.0,解压后,得到以下界面

启动文件

进入Libraries,然后进入CMSIS,再进入CM3,点击DeviceSupport,再顺序进入ST,STM32F10x,satrtup,arm,就可以看到库文件了:其为汇编文件

将其放入建立的工程中,为防止混乱,最好置于一个单独文件夹。

寄存器描述文件

回到上述文件夹中的STM32F10x处,找到stm32f10x.h文件,其功能为描述(声明)引脚功能,以便省去配置引脚过程,其下方两个system文件功能为配置时钟。复制此三个文件到启动文件步骤中新建的单独文件夹里。

内核描述文件

回到CM3文件夹,点击CoreSupport,这两个文件为内核寄存器描述文件,复制其置于启动文件步骤中新建的单独文件夹里。

必要文件配置完毕。

将文件加入项目

回到keil,建立新的group,向其加入之前建立的文件夹中的启动文件,包含所有以md.s结尾的文件,以及所有.c与.h文件。

接着将之前建立的文件夹的路径添加进来,防止keil找不到文件

点击该按钮,选中其中的C/C++

找到该位置:

点击...,到左上角,加入之前建立的文件夹的路径即可。

建立一个项目检测

建立新的group,为方便识别,之前包含启动文件的改名为start,现在新建的改为user,user下即为自己编写的代码

检测以上文件是否处于同一文件夹下,若不存在,将其挪入建立的user文件夹(一般不在)。

main.c以以下代码作为测试代码:

#include "stm32f10x.h" //编写代码需加上该头文件
int main(void)
{while(1){}
}

点击编译,发现报错:

检查发现为固件库不支持该编译器版本,修改编译器版本即可:

点击魔术棒,选择target,将下图右侧V6改为V5版本即可。

再次编译,只有一个警告(一般代码最后一行必须是空行,否则就有该警告),证明配置成功。


http://www.ppmy.cn/devtools/35754.html

相关文章

正则表达式之python中re模块的使用以及一些习题

正则表达式 正则表达式是一种用来描述字符串模式的方法。它是一种强大的工具,用于在文本中搜索、匹配和编辑特定模式的字符串。正则表达式可以用来验证输入是否符合某种模式,提取文本中的特定信息,以及进行文本的替换和分割等操作。在计算机…

如何判断嵌入式平台OpenCV在使用硬件编解码器?

01 涉及OpenCV编解码库的一个命令行工具 python3 -c import cv2; print(cv2.getBuildInformation()) 它可以打印输出详细的OpenCV编译参数和当前的媒体库相关参数,我的rk3588打印的信息是这样的: catlubancat:~$ python3 -c import cv2; print(cv2.getBu…

《XXL_job技术文档》-分布式任务调度框架-双方式部署-tar.gz安装/docker安装

阿丹: 作为任务调度的使用,xxl_job是经常使用的,可以帮助程序员或者其他业务的定时任务变的可控。但是很多教程都是通过压缩包来进行运行和部署的,但是现在更多的都是将模块容器化。本文章一次性整理。 XXL-Job是一款开源的分布式…

牛客网刷题 | BC78 KiKi说祝福语

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 2020年来到了&#…

详细分析Java中的@AllArgsConstructor注解

目录 前言1. 基本知识2. 实战 前言 事情起因是Spring的循环依赖 详情可见:出现The dependencies of some of the beans in the application context form a cycle 解决方法(全) 1. 基本知识 AllArgsConstructor 是 Lombok 提供的一个注解…

java反射

一、什么是反射? 反射(Reflection) 反射就是:加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)。反射是一种强大的特性,允许程序在运行时检查和修改类、方法、字段等的信息,以及动态创建对象…

Vue 插槽

Vue插槽是一种特殊的语法,用于在组件中定义可复用的模板部分。它允许开发者在组件的标记中声明一个或多个插槽,然后在使用该组件时,可以根据自己的需求将内容插入到这些插槽中。 Vue插槽分为默认插槽和具名插槽两种。 默认插槽 语法 组件…

Anaconda删除虚拟环境目录pkgs和envs|conda瘦身

这个文件夹里面是专门放不同环境中的包的,只是没有区分环境,都混在一起了, 一般在想要删除一个虚拟环境,除了在命令行中输入conda remove -n your_env_name(虚拟环境名称) --all 然后在envs中删除虚拟环境的文件夹, 还…