STM32编译前置条件配置

本文基于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.hqwc.cn/news/671822.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel公式后面加的““是什么意思呢?

这个大体上有两种用意。 1.将数值转换成文本 VLOOKUP(F2,A:C,3,0) 举个使用VLOOKUP函数的场景,如下图所示,员工信息表A:C区域中,A列员工号是文本型数字,使用VLOOKUP函数查询找的时候,F列的员工号数值型、文本型都有…

Linux学习(一)-- 简单的认识

目录 1. Linux的诞生 2.Linux发行版 拓展: (1)什么是Linux系统的内核? (2)什么是Linux系统发行版? 1. Linux的诞生 Linux创始人: 林纳斯 托瓦兹 Linux 诞生于1991年,作者上大学…

【copilot 使用指南 - @workspace】

为什么需要workspace 默认情况下,copilot只能分析当前文件中的代码内容, 那么如何让copliot 跨文件分析,分析整个项目,分析整个代码目录下的代码,就要用到workspace,举例 :假设如下代码 index…

2025第23届太原煤炭(能源)工业技术与装备展览会

第二十三届太原煤炭(能源)工业技术与装备展览会 邀 请 函 指导单位: 中国煤炭工业协会 主办单位:山西省煤炭工业协会 承办单位:太原奇新展览有限公司 展览时间:2025年4月22-24日 展览地点&#xff1a…

k8s集群Grafana精选dashboard页面

文章目录 参考文档 Grafana自选模板推荐模板:13332、13824、14518Grafana默认配置我们选择 Node Exporter/Nodes 的 Dashboard 进去:点击 Kubernetes/Networking/Cluster 进去使用模板查看结果 Grafana接入Prometheus数据Grafana添加监控模板导入 1860_r…

获取转转数据,研究完转转请求,tx在算法方面很友好。

本篇文章仅供学习讨论。 文章中涉及到的代码、实例,仅是个人日常学习研究的部分成果。 如有不当,请联系删除。 在研究完阿里的算法以后(其实很难说研究完,还有很多内容没有研究透,只能说暂时告一段落)&…

bfs之走迷宫

文章目录 走迷宫广度优先遍历代码Java代码打印路径 走迷宫 给定一个 nm 的二维整数数组,用来表示一个迷宫,数组中只包含 0或 1,其中 0表示可以走的路,1表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处&#…

流畅的python-学习笔记_符合python风格的对象

对象表示形式 查看对象说明,可以通过__repr__和__str__方法,前者主要用于开发者,后者主要用于用户,这两个方法分别对内置函数repr和str函数提供支持 向量类 备选构造方法 classmethod和staticmethod staticmethod用的不是特别…

git tag 相关操作

文章目录 前言一、git里面的Tag二、Tag 类型1. 轻量级标签&#xff08;Lightweight Tag&#xff09;2. 注释标签&#xff08;Annotated Tag&#xff09; 其他常用操作git taggit show <tagname>git push origin <tagname>删除tag使用 gitk 查看效果 总结 前言 一般…

Go 语言(四)【常用包使用】

1、命令行参数包 flag flag 包就是一个用来解析命令行参数的工具。 1.1、os.Args import ("fmt""os" )func main() {if len(os.Args) > 0 {for index, arg : range os.Args {fmt.Printf("args[%d]%v\n", index, arg)}} } 运行结果&#…

Oracle程序常驻程序内存优化【数据库实例优化系列二】

Oracle系统参数调整【数据库实例优化系列一】-CSDN博客 Oracle数据库中有一个软件包 dbms_shared_pool,它可以keep和unkeep,将用户经常使用的程序,比如存储过程、函数、序列、触发器、游标以及java source等数据库对象,长期保存在这一块区域。这些程序可以常驻这个区域(s…

深度学习之基于Pytorch卷积神经网络人民币面值识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在日常生活和商业活动中&#xff0c;人民币面值识别技术具有重要的应用价值。传统的面值识别方法&am…