STM32——STM32F401x系列标准库的下载+环境搭建+建工程步骤(更完整)
文章目录
- 标准库的下载
- 环境搭建+建工程
- 最后的话
标准库的下载
1.STM32标准库的官网下载网站https://www.st.com/content/st_com/en.html
2.
3.
4.
5.
6.

7.点击之后下滑

8.选择自己需要的版本下载
环境搭建+建工程
大致步骤同之前我写的一篇STM32——建工程差不多,但是当时是现成的标准库文件,芯片是STM32F103系列的,下面我重写一次,芯片为STM32F401X,当然本篇文章几乎适用所有芯片
1.代码移植,根据习惯创建以下文件夹

2.自己路径\2.环境搭建\标准库文件\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\STM32F4xx_StdPeriph_Driver
该路径下找到以下两个文件夹并拷贝到Lib文件夹中

3.路径:\2.环境搭建\标准库文件\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm找到驱动文件,对应自己的芯片型号选择,并拷贝到Startup驱动文件夹中

4.路径:2.环境搭建\标准库文件\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
中找到以下两个.h文件并拷贝至User里面

5.路径:2.环境搭建\标准库文件\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\STM32F4xx_StdPeriph_Templates下找到以下文件并拷贝至User

7.建工程打开KEIL5

8.进来之后勾选

如果不小心关闭了可以点击,勾选过后点击ok

9.选择单片机型号


10.Target下勾选使用微库

11.选择自动创建HEX文件、提示Debug信息等等

12.点击C/C++以下两个部分需要配置,第一个是芯片型号对应预处理的符号,根据自己的型号选择不同的预处理,如何找到自己的芯片型号对应的预处理?——路径2.环境搭建\标准库文件\STM32F4xx_DSP_StdPeriph_Lib_V1.9.0\Project\STM32F4xx_StdPeriph_Templates\MDK-ARM下的文件readme,打开如下显示,根据自己型号选择


接下来选择头文件路径需要选择以下路径
①…\User //用户头文件路径
②…\Lib\inc //源文件头文件路径



13.给工程中添加文件

创建以下文件夹——文件夹包含的文件根据自己的路径选择——点击ADD Files——把刚刚创建的所有的文件都添加到对应的文件夹中

14.编译代码,有如下错误的处理方法
- 1
.这个地方报错,把这句话屏蔽就好
14.2
如果包含移植代码中一直警告重复定义4行内容,把那四行屏蔽了就行,如果你的代码不能屏蔽,选择工程的文件夹——右键——属性——只读文件取消——再屏蔽就好了
最后的话
之前的环境搭建和标准库都是给好的,相当于喂饭吃了,自己写的总结也不全面,经历了新的芯片选择重新搭建环境和建工程后,学到了不少,立马写下本篇笔记,对自己说少眼高手低!
相关文章:
STM32——STM32F401x系列标准库的下载+环境搭建+建工程步骤(更完整)
文章目录 标准库的下载环境搭建建工程最后的话 标准库的下载 1.STM32标准库的官网下载网站https://www.st.com/content/st_com/en.html 2. 3. 4. 5. 6. 7.点击之后下滑 8.选择自己需要的版本下载 环境搭建建工程 大致步骤同之前我写的一篇STM32——建工程差不多࿰…...
基于ArcGIS土地利用量化人类活动的分析及模型构建
ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台。ArcObjects包含了许多的可编程组件,从细粒度的对象(例如单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象)涉及面极广,这…...
特性Attribute
本文只提及常用的特性,更多特性请查看官方文档。 AddComponentMenu - Unity 脚本 API 常用特性 AddComponentMenu 添加组件菜单 使用 AddComponentMenu 属性可在“Component”菜单中的任意位置放置脚本,而不仅是“Component > Scripts”菜单。 使用…...
pyqt5, 如何在窗口上显示10个点地循环进度条。
要在PyQt5窗口上显示从1个点逐渐增加到10个点,然后周而复始地循环,可以使用PyQt5的图形绘制功能和定时器来实现。以下是一个简单的例子: import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPainter, …...
VM里ubuntu虚拟无法启动
开始认为是VM的设置问题,按照这个链接关闭的3d加速图像显示,以及那个cmd命令,但是没什么用。 后来看到一篇博文和我的错误一模一样,都是只有一个光标在闪。于是按照这个操作进行了一遍,发现是home文件满了,…...
信息学奥赛一本通——1156:求π的值
文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】 AC代码 题目 【题目描述】 根据公式: a r c t a n x ( x ) x − x 3 3 x 5 5 − x 7 7 ⋯ arctanx\left ( x \right ) x- \frac{x^3}{3} \frac{x^5}{5}-\frac{x^7}{7} \cdots arctanx(x…...
BI报表工具有哪些作用?奥威BI全面剖析数据
BI报表工具有哪些作用?主要的作用是通过整合多业务来源数据,全面分析挖掘数据,来帮助企业实现数据化运营、支持智能决策、实现数据资产沉淀和增值、进行数据挖掘和预测分析、提高数据可读性和数据可视化程度等,从而提高企业的竞争…...
【云原生K8s】初识Kubernetes的理论基础
K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。 云原生基金会(CNCF)于2015年12月成立,隶属于Linux基金会。CNCF孵化的第一个项目…...
javaAPI(三):jdk8之前的日期API
jdk 8之前的日期时间API 1、System类中currentTimeMillis()。 2、 java.util.Date和子类java.sql.Date。 3、SimpleDateFormat 4、Calendar System返回时间戳 long time System.currentTimeMillis();System.out.println(time);Date类 java.util.Date类 实例化 构造器一&a…...
驱动开发(中断)
头文件: #ifndef __LED_H__ #define __LED_H__#define PHY_LED1_MODER 0X50006000 #define PHY_LED1_ODR 0X50006014 #define PHY_LED1_RCC 0X50000A28#define PHY_LED2_MODER 0X50007000 #define PHY_LED2_ODR 0X50007014 #define PHY_LED2_RCC 0X50000A28#def…...
TypeScript最新语法总结
注意注意!!!本文介绍的是最新的TypeScript4的重要语法 第一部分:TypeScript的简介 TypeScript 是由微软开发的一款开源的编程语言,TypeScript 是 Javascript 的超集,遵循最新的 ES6、ES5 规范,…...
sentinel组件
目录 定义 4.加SentinelResource,blockHander是超过阈值之后执行的函数 5.设置阈值 6.springboot集成sentinel 定义 1.sentinel知道当前流量大小,在浏览器和后端之间加sentinel控制流量,避免大批量的瞬时请求都达到服务上,将服务压垮 2.…...
26 MFC序列化函数
文章目录 Serialize对于存储文件的序列化 Serialize Serialize 是一个在 MFC (Microsoft Foundation Classes) 中常用的函数或概念。它用于将对象的数据进行序列化和反序列化,便于在不同的场景中保存、传输和恢复对象的状态。 在 MFC 中,Serialize 函数…...
GC 深入(小白,对gc有一个进一步的了解)
垃圾回收器的搭配 一般固定 一般这年轻代垃圾回收器,老年代垃圾回收器,如上图搭配着使用 1.8呢默认就是最后边那哥俩 jvm调优 一个就是增加吞吐量 一个就是减少STW的时间。 三色标记算法(理解根可达算法) 并发的可达性分析 有…...
CSS前端面试
文章目录 rem、em、vh、px各自代表的含义?盒模型poison 定位属性flex属性让元素水平垂直居中页面适配的方法有哪些 rem、em、vh、px各自代表的含义? px:绝对单位,页面按精确像素展示 em:相对单位,基准点为…...
VB+SQL餐饮管理系统设计与实现
第一章 前言 1.1 绪论 当今世界已进入了在计算机信息管理领域中激烈竞争的时代,应用计算机已经变得十分普遍了,如同我们离不开的自行车、汽车一样。我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中立于不败之地。随着…...
React入门学习笔记2
jsx语法规则 定义虚拟DOM时,不要写引号。标签中混入JS表达式时要用{ }。样式的类名指定不要用class,要用className。内联样式,要用style{{key:value}}的形式去写。只有一个根标签标签必须闭合标签首字母 )若小写字母开头…...
Palo Alto Networks® PA-220R 下一代防火墙 确保恶劣工况下的网络安全
一、主要安全功能 1、每时每刻在各端口对全部应用进行分类 • 将 App-ID 用于工业协议和应用,例如 Modbus、 DNP3、IEC 60870-5-104、Siemens S7、OSIsoft PI 等。 • 不论采用何种端口、SSL/SSH 加密或者其他规避技术,都会识别应用。 • 使用…...
架构训练营学习笔记:5-2 负载均衡架构
多级负载架构 设计关键点 性能需求、维护复杂度之间做取舍。 一可以去掉F5、LVS : F5 是成本较高,LVS 是复杂,对于性能没那么高需求,可以去掉。 二 去掉ng: 服务网关服务 适应于初创公司快速验证,内部的 小系统…...
二叉树的性质、前中后序遍历【详细】
1. 树概念2.二叉树的概念1.2二叉树的性质 3.二叉树遍历3.2前序遍历3.2 中序遍历3.3 后序遍历 1. 树概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合,有二叉树,N叉树等等。 子树…...
3分钟掌握OpenSpeedy:完全免费的开源游戏变速工具终极指南
3分钟掌握OpenSpeedy:完全免费的开源游戏变速工具终极指南 【免费下载链接】OpenSpeedy 🎮 An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy OpenSpeedy是一款专为Windows平台设计的开源游戏变速工…...
Swagger Client 完整教程:从零开始构建强大的 API 集成应用
Swagger Client 完整教程:从零开始构建强大的 API 集成应用 【免费下载链接】swagger-js Javascript library to connect to swagger-enabled APIs via browser or nodejs 项目地址: https://gitcode.com/gh_mirrors/sw/swagger-js Swagger Client 是一款功能…...
DeepSeek LeetCode 1210. 穿过迷宫的最少移动次数 public int minimumMoves(int[][] grid)
我来分析 LeetCode 1210 “穿过迷宫的最少移动次数” 的解题思路和实现。 问题分析 我们有一条长度为 2 的蛇,需要从起点 (0,0) 和 (0,1)(水平放置)移动到终点 (n-1, n-2) 和 (n-1, n-1)(仍为水平放置)。蛇可以&#x…...
别只盯着代码了!用Multisim仿真带你理解74LS90和555的‘数字心脏’
用Multisim仿真揭秘数字电路:从555脉冲到74LS90计数的实战之旅 当你第一次看到数字电路时,是否觉得那些密密麻麻的芯片引脚和抽象的逻辑符号令人望而生畏?作为一名软件开发者,我曾经也有同样的困惑——直到发现Multisim这个神奇的…...
Claude Code 进阶篇:玩转内置 `/loop` 命令,定时任务 + 大白话,搞定监控只要一句话
每天免费领 1亿 Token,白嫖DeepSeek、GLM、MiniMax、Kimi等大模型! 这篇文章分享给:天天用 Claude Code 写代码的兄弟们,教你把那些烦人的重复监控活儿,从“肉眼盯着”变成“自动播报”。 每天免费领 1亿 Token&#…...
WTF, forms? CSS原理大揭秘:如何用纯CSS打造自定义表单控件
WTF, forms? CSS原理大揭秘:如何用纯CSS打造自定义表单控件 【免费下载链接】wtf-forms Friendlier HTML form controls with a little CSS magic. 项目地址: https://gitcode.com/gh_mirrors/wt/wtf-forms WTF, forms? 是一个通过纯CSS魔法打造友好HTML表…...
别再只会apt autoremove了!dpkg报错Sub-process returned error code (1)的5种修复姿势全解析
深度解析dpkg报错Sub-process returned error code (1)的5种专业修复策略 当你正在Ubuntu或Debian系统上安装某个关键软件包时,突然终端弹出一条刺眼的错误信息:"Sub-process /usr/bin/dpkg returned an error code (1)"。这不是普通的警告&am…...
知网维普都要过,AI率85%用哪款工具最合适
越来越多高校开始同时要求知网和维普检测,这让选工具变得更复杂了——不是只要过一个平台,而是要同时达标。 AI率85%,知网和维普都要过20%以下,这种情况用哪款工具最合适? 知网和维普的算法差异 先说一个背景知识&a…...
Unity WebGL小游戏上抖音,从踩坑到上线:一份避坑指南与性能优化清单
Unity WebGL小游戏上抖音:性能优化与避坑实战手册 当你第一次将Unity WebGL小游戏发布到抖音平台时,可能会遇到各种意想不到的性能瓶颈和兼容性问题。iOS设备上的内存限制、WebGL与Native的性能差距、包体大小控制等挑战,都可能让原本流畅的游…...
【RAG】【vector_stores001】阿里云OpenSearch向量存储完整案例
本案例演示如何使用 LlamaIndex 与阿里云 OpenSearch 向量搜索版集成,实现向量存储和检索功能,用于构建基于文档的问答系统。1. 案例目标本案例的主要目标是:设置阿里云 OpenSearch 向量存储:配置 LlamaIndex 以使用阿里云 OpenSe…...
