嵌入式学习笔记——STM32单片机开发前的准备
STM32单片机开发前的准备
- 1.集成开发环境的选取
- STM32 CubeIDE
- KEIL_MDK
- 2.KEIL_MDK环境搭建
- 安装包获取及安装
- 芯片包下载及安装
- 工程建立(STM32F407VET6为例)
- 1.新建工程文件夹
- 2.新建工程
- 3.安装ST-LINK以及CH340的驱动
- 4.设置KEIL,并烧录
- 本文重点
1.集成开发环境的选取
前面两篇主要是围绕单片机做了一些概述,本开始,正式进入STM32的开发准备。首先是开发环境的选取,得益于发展时间比较长,单片机的开发环境已经变得集成化程度愈来愈高了,针对STM32有着多款IDE(集成开发环境)可以选择,例如常见的KEIL MDK、IAR、VScode、STM32 CubeIDE。
注:IDE(集成开发环境,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。——来自百度百科对于IDE的解释。
STM32 CubeIDE
当然ST公司也有自己的开发环境STM32 CubeIDE,配合其图形化编程软件STM32CubeMX可以很大程度上节约用户编写片内外设底层代码的时间以及调试成本,配合其HAL库也有着不错的开发体验,本系列暂时选用KEIL MDK配合寄存器开发,后面有时间笔者再安排使用ST公司自家开发全家桶进行介绍。想要了解的也可以去其官网查看https://www.st.com/zh/development-tools/stm32-software-development-tools.html

KEIL_MDK
进入KEIL官网点击产品,选择Arm Cortex-M然后就可以看见MDK的界面了。

我们可以看见MDK集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务,是一个STM32开发常用的IDE。

2.KEIL_MDK环境搭建
KEIL有专门针对学生和个人开发者的免费社区版,直接在这点击下载即可,推荐大家下载5.35以前的版本,新版的编译器什么的都更新了会造成例程都无法编译通过的尴尬局面,还得自己手动切换编译器。

安装包获取及安装
关于KEIL的获取和安装,网上资料很多这里给大家贴个链接,
Keil5MDK(MDK-Community edition)社区版安装教程http://t.csdn.cn/Xw2gd
如果看完还有错误,或者想要详细安装文档以及5.25版本安装包的可以私信,笔者发给你。
芯片包下载及安装
MDK安装好后,其默认是没有STM32的芯片包的,需要我们自己下载并添加,这里记录手动下载及安装的方式:
首先,进入KEIL的官网,找到芯片包的下载地址:


在新界面点击software Pscks
或者直接点击下方链接进去选择对应型号的芯片包下载并安装。
https://www.keil.com/dd2/pack/

查找到自己需要的芯片信号,然后点击下载,选择接受,然后等待下载完毕。由于是外网,下载可能很慢,或者说下载不了的,直接点击这个链接进去网盘下载——
链接:https://pan.baidu.com/s/1q9zMc6tJE7gD8M2EzwfedA?pwd=x9q8
提取码:x9q8

关于安装,直接双击,然后一路next就可以了,如果双击没反应,也可以参考这种添加PACK的方式——
keil5(MDK)导入pack包http://t.csdn.cn/gQ6vL。
工程建立(STM32F407VET6为例)
1.新建工程文件夹
首先为了后期方便管理自己的代码,建议是单独新建一个专门存放程序的文件夹,每次新建工程都在这个大文件(如下图的工程代码)内再新建一个小的文件夹(LED+KEY),小文件开始,往后面尽量不要使用中文命名。

而后在小文件内再新建三个文件夹,分别是:
1.CMSIS——用来存放系统启动文件以及官方时钟配置文件
2.PROJECT——用来存放KEIL生成的工程文件以及工程输出的相关文档。
3.USER——用来存放个人文件,类似main.c、以及其他用户源文件以及头文件等等。

2.新建工程
这里给贴一个大佬总结的步骤很详细,看完如果还有不行的,可以把问题留在评论区,或者私信笔者。
STM32新建工程http://t.csdn.cn/M0DSk
新建完成后编译0errors就说明工程没问题了。

3.安装ST-LINK以及CH340的驱动
这两个也都是直接双击,一直下一步就行了安装成功后在计算机管理里面即可查看到这两个。


4.设置KEIL,并烧录
按照以下步骤选择ST-LINK下载器并点击setting.

在红框位置可以看见0xxxxxxx的内核号即可。
如果没有内核号,有可能是连接出了问题,需要检查接线。内核号查询没问题后,点击确定。

然后就可以开始烧录了,点击一号框的LOAD,等待2位置出现100%标明烧录完毕。

至此,整个开发环境就已经全部跑通了。接下来就可以开始编程了。
本文重点
STM32工程的创建,工程格式。环境搭建以及烧录,由于整个过程实在是太多篇幅了,中间有些步骤省略了,如果有需要更详细介绍的可以私信笔者。
相关文章:
嵌入式学习笔记——STM32单片机开发前的准备
STM32单片机开发前的准备1.集成开发环境的选取STM32 CubeIDEKEIL_MDK2.KEIL_MDK环境搭建安装包获取及安装芯片包下载及安装工程建立(STM32F407VET6为例)1.新建工程文件夹2.新建工程3.安装ST-LINK以及CH340的驱动4.设置KEIL,并烧录本文重点1.集成开发环境的选取 前面…...
客户案例|FPGA研发管理解决方案:UniPro瀑布+敏捷 打造高效能组织
2023开年以来,新享科技项目管理软件UniPro收获一波客户侧的点赞好评。在过去一年中,UniPro不断与客户保持高频沟通,满足客户需求为出发点,以产品功能实现为落脚点,不断打磨产品。 以UniPro客户京微齐力为例࿰…...
【信息学奥赛】1400:统计单词数
统计单词数也需要分割单词,如果使用字符数组来做的话,其实和1144:单词翻转类似,但是我一直只能通过四个样例,估计边界处理条件还是有点问题。 不过经过打印字符串长度之后发现了之前遇到的一个问题,即fget…...
# 技术详解: 利用CI同步文章以及多端发布
技术详解: 利用CI同步文章以及多端发布 技术详解: 利用CI同步文章以及多端发布 前言文章的同步实现的细节 思路文章元数据的定义和提取修改文章的优化本地图片资源上传CDN并替换本地link 终于到了 CI 的部分了最后来一些碎碎念 前言 前几天我更新了一篇简单技术总结之后&am…...
分形维数的计算方法汇总
以下是常用的时间序列分形维数计算方法及相应的参考文献:Hurst指数法Hurst指数法是最早用于计算分形维数的方法之一,其基本思想是通过计算时间序列的长程相关性来反映其分形特性。具体步骤是:(1) 对原始时间序列进行标准化处理。(2) 将序列分…...
微积分小课堂:积分(从微观趋势了解宏观变化)
文章目录 引言I. 预备知识: 积分效应1.1 闯黄灯1.2 公司利润(飞轮效应)1.3 飞轮效应II 积分2.1 积分的计算2.2 积分思想的本质引言 微分解决的问题是从宏观变化了解微观趋势;积分和微分刚好相反,是从微观去看宏观变化。 通过积分效应,提升我们的认识水平,同时能用一些工…...
4道数学题,求解极狐GitLab CI 流水线|第4题:合并列车
本文来自: 武让 极狐GitLab 高级解决方案架构师 💡 极狐GitLab CI 依靠其一体化、轻量化、声明式、开箱即用的特性,在开发者群体中的使用率越来越高,在国内企业中仅次于 Jenkins ,排在第二位。 极狐GitLab 流水线有 4…...
代码规范简述
目录 命名规范 代码格式 OOP规约 集合规范 并发规范 SQL语句规范 SQL 建表规范 SQL 索引规范 SQL 查询规范 控制语句规范 Javadoc 规范 其他规范 命名规范 1、包名:使用小写字母,多个单词之间用"."分隔,例如ÿ…...
【Java集合框架】篇五:Map接口
1. Map及实现类特点 Map:存储key-value HashMap:线程不安全,效率高,key和value都可以为null,底层使用 数组单向链表红黑树 结构(jdk8)。 LinkedHashMap:是HashMap的子类࿰…...
Typroa安装教程
Markdown 是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语言吸收了很多在电子邮件中已有的纯文本标记…...
【MySQL】存储引擎
目录 1.MySQL体系结构 2.存储引擎介绍 3.存储引擎特点 4.存储引擎选择 1.MySQL体系结构 MySQL整体的逻辑结构可以分为4层,客户层、服务层、存储引擎层、数据层 客户层 客户层:进行相关的连接处理、权限控制、安全处理等操作 服务层 服务层负责与客户层进行连接处理、处…...
芯驰(E3-gateway)开发板环境搭建以及调试遇到问题的解决
1-Windows下环境配置 可以在Windows上使用命令行或者IAR IDE编译SSDK项目。Windows编译依赖的工具已经包含在 prebuilts/windows 目录中,包括编译器、Python和命令行工具。 1.1.1 CMD SSDK集成 msys 工具,可以在Windows命令行中完成SDK的配置、编译和…...
【大数据监控】Prometheus、Node_exporter、Graphite_exporter安装部署详细文档
目录Prometheus简介下载软件包安装部署创建用户创建Systemd服务修改配置文件prometheus.yml启动Prometheusnode exporter下载软件包安装部署添加用户创建systemd服务启动node_exportergraphite_exporter下载软件包安装部署创建systemd服务启动 graphite_exporterPrometheus 简介…...
《C++ Primer》 第十一章 关联容器
《C Primer》 第十一章 关联容器 11.1 使用关联容器 使用map: //统计每个单词在输入中出现的次数 map<string, size_t> word_count;//string到size_t的空map string word; while(cin>>word)word_count[word];//提取word的计数器并将其加1 for(const auto &w:…...
WebRTC标准与框架解读(1)
1、如果让我来设计webrtc框架我在分析源码的时候,都喜欢做这样一件事情:如果让我来设计它,我会怎么做?大家可以紧跟我的思路,分析一下WebRTC为什么如此设计。为了对整个框架有有一个全面的了解,我们首先要做…...
数据结构的一些基础概念
一 基本术语 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处…...
【Python每日一练】总目录(不断更新中...)
Python 2023.03 20230303 1. 两数之和 ★ 2. 组合总和 ★★ 3. 相同的树 ★★ 20230302 1. 字符串统计 2. 合并两个有序链表 3. 下一个排列 20230301 1. 只出现一次的数字 2. 以特殊格式处理连续增加的数字 3. 最短回文串 Python 2023.02 20230228 1. 螺旋矩阵 …...
latex插入图片(自用)
加入宏包:\usepackage{graphicx} 使用 \includegraphics 命令进行插图。 \includegraphics[]{}: 第一参数[]:对图片做一些适当的调整(设定图片的高度和宽度或者按比例缩放) 第二参数{}:图片的名字…...
【微信小程序】-- 网络数据请求(十九)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
K8S 实用工具之一 - 如何合并多个 kubeconfig?
开篇 📜 引言: 磨刀不误砍柴工工欲善其事必先利其器 K8S 集群规模,有的公司倾向于少量大规模 K8S 集群,也有的公司会倾向于大量小规模的 K8S 集群。 如果是第二种情况,是否有一个简单的 kubectl 命令来获取一个 kubec…...
数据恢复全面指南:开源数据救援工具组合实战手册
数据恢复全面指南:开源数据救援工具组合实战手册 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 数据丢失的噩梦与解决方案 2023年,摄影师小李在一次外景拍摄后误格式化了SD卡&#…...
新手福音:通过快马平台生成带注释的nap自动化运维脚本快速入门
作为一个刚接触网络自动化运维的新手,第一次看到"深圳网络自动化运维nap"这个概念时,整个人都是懵的。各种专业术语、复杂的协议和库让我望而却步,直到发现了InsCode(快马)平台,才真正找到了入门的好方法。 为什么选择n…...
bert-base-chinese场景解析:从语义相似度计算到特征提取实战
BERT-base-chinese场景解析:从语义相似度计算到特征提取实战 1. 模型概述与核心价值 BERT-base-chinese是Google推出的中文预训练语言模型,基于Transformer架构构建,专门针对中文文本处理进行了优化。作为NLP领域的里程碑式模型,…...
5分钟搭建专业级缠论可视化分析平台:从零到实战的完整指南
5分钟搭建专业级缠论可视化分析平台:从零到实战的完整指南 【免费下载链接】chanvis 基于TradingView本地SDK的可视化前后端代码,适用于缠论量化研究,和其他的基于几何交易的量化研究。 缠论量化 摩尔缠论 缠论可视化 TradingView TV-SDK 项…...
【信号处理】基于预设性能的无模型自适应分数阶快速终端滑模控制在MIMO非线性系统中的研究附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
STM32标准库项目如何用VSCode一键编译下载?详解tasks.json与Makefile的联动配置
STM32标准库项目在VSCode中实现一键编译下载的终极指南 1. 为什么选择VSCode进行STM32开发? 传统嵌入式开发往往依赖于Keil、IAR等商业IDE,但这些工具存在几个明显痛点: 高昂的授权费用:商业IDE的许可证价格让个人开发者和小团队望…...
Presto函数实战指南:从基础到高阶应用
1. Presto函数入门:从零开始掌握基础操作 第一次接触Presto函数时,我完全被它丰富的功能震撼到了。记得当时我需要快速分析一个包含数百万条记录的日志表,传统方法需要写复杂的MapReduce作业,而Presto仅用几行SQL函数就搞定了。下…...
语音合成延迟优化:IndexTTS-2-LLM网络IO调优实战
语音合成延迟优化:IndexTTS-2-LLM网络IO调优实战 1. 为什么语音合成总在“等”?从用户卡顿说起 你有没有试过在语音合成页面点下“开始合成”,然后盯着进度条数秒——明明只是一句话,却要等3秒、5秒,甚至更久&#x…...
Guohua Diffusion 数据库集成方案:MySQL管理生成任务与作品元数据
Guohua Diffusion 数据库集成方案:MySQL管理生成任务与作品元数据 如果你用过Guohua Diffusion这类图像生成工具,可能会遇到一个头疼的问题:生成的图片越来越多,管理起来越来越乱。今天想找上周生成的那张“赛博朋克风格的城市夜…...
LiuJuan Z-Image Generator参数详解:CFG Scale=2.0与12步生成高质量人像
LiuJuan Z-Image Generator参数详解:CFG Scale2.0与12步生成高质量人像 想用AI生成一张惊艳的人像照片,却发现要么细节模糊,要么风格怪异,怎么调参数都达不到理想效果?如果你也遇到过类似问题,那今天这篇文…...
