STM32CubeMX配置步骤详解零 —— 引言

news2024/11/23 12:14:31

引子

初识

笔者接触STM32系列MCU有些年头了。初次接触是2015年,那时是在第二空间(北京)科技有限公司上班,是以STM32F407(后缀好像是RGT6或ZGT6,记得不是很清楚了)为主芯片做VR头戴式设备,当然公司后续也有低端产品,使用的是STM32F103。第二年又兼职帮助硕米(后更名为摩象)科技做了小米VR的头戴式设备第一版嵌入式软件,以STM32F072CB为主芯片。

甭管是高端STM32 F4系列还是低端的F1和F0系列,印象中当时没有HAL库,也只知道有正点原子(当年自主研发的头戴式产品就是以正点原子的探索者开发板为基准开发的),其提供的开发板配套工程代码只有寄存器版本和库函数版本(HAL库出来后称作标准库)。

再相逢

自2016年下半年以后就与STM32系列单片机暂别了,再次与它接触已经是2021年了。当时,当年摩象科技的老合作伙伴出来创业,找准了泳池清洁机器人这个赛道,准备创立一家公司(即后来的智橙动力(北京)科技有限公司),邀我加入,并在公司成立正式之前开始做技术准备和技术储备。

这里说个题外话,智橙动力后来应该是改名和搬家了,2021年成立的时候是在北京,名字是智橙动力(北京)科技有限公司,看来现在已经更名为智橙动力(苏州)科技有限公司了,估计地点也搬到苏州了吧。

回到主题中来,当时(2021年8月中旬)我经过诸多竞品的比对权衡(功能、成本、技术支持完善度等维度),最终选择了STM32F103这款芯片。理由是这块芯片当年玩过,还算比较熟悉,更为重要的一点是,它是野火拂晓电机开发板的主芯片。不过后来又经过一番考量,最终选择了STM32F405作为主芯片(接近于野火骄阳电机开发板的主芯片STM32F407)。

这时就有了两个收获:(1)除正点原子外,知道了与其同等重量级、同样亲和力的野火;(2)再相遇时,发现已不再只有寄存器和标准库了,而是多了一个ST(意法半导体)推出的HAL库以及与之相配合的STM32CubeMX。

不过一开始,从内心对于CubeMX和HAL库是排斥的,因为当年已经使用惯了寄存器和标准库函数,一下要接触一个新鲜事物总是不大情愿的。无奈野火电机的例程大都是基于HAL库的,只得硬着头皮去学这个新的方法。然而,一旦真正用上了、尤其用惯了HAL库和CubeMX,发现它是真好用。通过图形化界面进行配置操作,而后系统会自动生成代码,不但节省了大量的自己配置代码的时间,而且还避免了自己写配置代码所可能产生的遗漏。因此,到后来让我用寄存器和标准库我都不愿意使用了,只愿意使用STM32CubeMX和HAL库。

再聚首

在智橙动力干了半年左右,由于与老板(就是摩象的那个旧相识)的理念存在难以调和的差异,最终离开了那个公司,回归到了个人最愿意从事的操作系统行业。但是去年年底由于公司裁员,赋闲在家了。最近找了一个兼职工作,是基于STM32H743做一个类似于音乐播放器的项目。虽然不再是STM32F系列了,但仍然是STM32系列,也仍然要与STM32CubeMX和HAL库打交道。不过这正好弥补了两年多以前的遗憾。当年由于创业初始,什么都是“跑步前进”,能够调通就好,没有更多时间去写一些细节的东西,再加上当年对于在CSDN上写博客的热情还没有像现在这样高涨,因此对于STM32CubeMX是如何下载、尤其是如何配置等详细过程,没有进行记录。这次正好借着这个机会重新走一遍此过程,以STM32H743为实例,对于CubeMX的详细配置过程以及所遇到的问题及解决详细记录下来,并制作成一个保姆级的教程,以弥补当年的缺憾。

闲言已叙,书归正文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1564943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

40道Java经典面试题总结

1、在 Java 中,什么时候用重载,什么时候用重写? (1)重载是多态的集中体现,在类中,要以统一的方式处理不同类型数据的时候,可以用重载。 (2)重写的使用是建立…

githacker安装使用

githack下载不了文件,换个工具! 项目地址 WangYihang/GitHacker: 🕷️ A .git folder exploiting tool that is able to restore the entire Git repository, including stash, common branches and common tags. (github.com) 安装 pyth…

光伏行业项目管理系统解决方案!企智汇光伏项目管理系统!

光伏行业项目管理系统解决方案旨在通过整合和优化项目管理流程,提高光伏项目的执行效率和质量。以下是企智汇软件详细的光伏行业项目管理系统解决方案的框架: 一、系统概述 企智汇光伏行业项目管理系统是一个集项目规划、执行、监控和收尾于一体的综合…

Vue3:用Pinia的storeToRefs结构赋值store数据

一、情景描述 我们学习了Pinia之后,知道,数据是配置在Pinia的state里面的。 那么,如果有多个字段需要取出来使用,并且不丢失数据的响应式,如何优雅的操作了? 这里就用到了Pinia的storeToRefs函数 二、案…

【CANN训练营笔记】AscendCL图片分类应用(C++实现)

样例介绍 基于PyTorch框架的ResNet50模型,对*.jpg图片分类,输出各图片所属分类的编号、名称。 环境介绍 华为云AI1s CPU:Intel Xeon Gold 6278C CPU 2.60GHz 内存:8G NPU:Ascend 310 环境准备 下载驱动 wget ht…

CAPL实现关闭TCP连接的几种方式以及它们的区别

在讲正文前,我们有必要复习下关闭TCP连接的过程:四次挥手。 假设A和B建立TCP连接并进行数据传输,当A的数据发送完后,需要主动发起断开连接的请求: A发送FIN报文,发起断开连接的请求B收到FIN报文后,首先回复ACK确认报文B把自己的数据发送完,发送FIN报文,发起断开连接的…

探索网红系统功能菜单架构的设计与优化

随着社交媒体和数字化内容的普及,网红经济正在成为新兴的产业。在网红经济体系中,网红系统的功能菜单架构对于平台的用户体验和运营效率至关重要。本文将深入探讨网红系统功能菜单架构的设计与优化,为网红经济的发展提供新的思路和方法。 --…

HWOD:自守数

一、知识点 break只会结束最里面的一层循环 int型数按位比较的时候,可以直接求余比较,无需转换为char型数组后再按下标比较 二、题目 1、描述 自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 625,76^2 5776…

软考高级架构师:文件管理-位示图概念和例题

一、AI 讲解 文件管理在操作系统中负责文件的存储、检索、共享和保护。管理空闲空间是其中的一项重要任务,以确保文件系统的高效和灵活性。常见的空闲空间管理方法有空闲区表法、空闲链表法、位示图法和成组链表法。 下面通过表格形式概括这些方法的特点和应用场景…

Python快速入门系列-9(Python项目实战)

第九章:Python项目实战 9.1 开发一个简单的Web应用9.1.1 项目概述9.1.2 环境准备9.1.3 项目结构9.1.4 代码实现9.1.4.1 创建数据库模型9.1.4.2 创建视图9.1.4.3 实用工具函数9.1.4.4 运行应用9.1.5 模板设计9.2 数据分析与可视化项目9.2.1 项目概述9.2.2 环境准备9.2.3 数据分…

file_get_contents(‘php://input‘); 这个postman要如何传参

在 Postman 中传递参数给 file_get_contents(php://input); 是通过请求的 Body 部分来实现的。使用 Postman 进行 API 接口测试时,可以按照以下步骤来传递参数: 打开 Postman 并创建一个新的请求。在请求的 URL 地址栏输入你的 API 地址。选择请求方法为…

Spark实战:词频统计

文章目录 一、Spark实战:词频统计(一)Scala版1、分步完成词频统计2、一步搞定词频统计 (二)Python版1、分步完成词频统计2、一步搞定词频统计 二、实战总结 一、Spark实战:词频统计 (一&#x…

【Python时序预测系列】基于ConvLSTM实现单变量时间序列预测(源码)

这是我的第252篇原创文章。 一、引言 ConvLSTM是一种融合了卷积神经网络(CNN)和长短期记忆网络(LSTM)的混合神经网络结构,专门用于处理时空序列数据。ConvLSTM结合了CNN对空间特征的提取和LSTM对时间序列建模的能力&a…

CentOS7安装flink1.17完全分布式

前提条件 准备三台CenOS7机器,主机名称,例如:node2,node3,node4 三台机器安装好jdk8,通常情况下,flink需要结合hadoop处理大数据问题,建议先安装hadoop,可参考 hadoop安…

曲线降采样之道格拉斯-普克算法Douglas–Peucker

曲线降采样之道格拉斯-普克算法Douglas–Peucker 该算法的目的是,给定一条由线段构成的曲线,找到一条点数较少的相似曲线,来近似描述原始的曲线,达到降低时间、空间复杂度和平滑曲线的目的。 附赠自动驾驶学习资料和量产经验&…

【C++】哈希之位图

目录 一、位图概念二、海量数据面试题 一、位图概念 假如有40亿个无重复且没有排序的无符号整数,给一个无符号整数,如何判断这个整数是否在这40亿个数中? 我们用以前的思路有这些: 把这40亿个数遍历一遍,直到找到为…

AI音乐GPT时刻来临:Suno 快速入门手册!

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

使用fusesource的mqtt-client-1.7-uber.jar,mqtt发布消息出去,接收端看到的是中文乱码,如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

是否有替代U盘,可安全交换的医院文件摆渡方案?

医院内部网络存储着大量的敏感医疗数据,包括患者的个人信息、病历记录、诊断结果等。网络隔离可以有效防止未经授权的访问和数据泄露,确保这些敏感信息的安全。随着法律法规的不断完善,如《网络安全法》、《个人信息保护法》等,医…

基于Springboot+Mybatis实现个人理财系统

基于SpringbootMybatis实现个人理财系统 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式…