STM32 CubeMX产生的程序架构

news2024/11/20 9:18:58

使用STM32CubeMX产生启动相关代码,配置各种外设。在后续程序开发过程中,有可能使用STM32CubeMX逐步产生使用的代码,为了将其产生的代码和我们程序隔离,一种可行的程序架构如下:

在此架构中,STM32CubeMX产生的相关代码作为整个架构的HWD层,和我们的程序分开放到不同的目录,易于区分。

HWD层依赖HAL层,功能模块和业务逻辑依赖HAL层。

HWD层依赖HAL层,在STM32CubeMX产生的代码USER处添加HAL层内的函数的依赖。

这样,当后续使用STM32CubeMX再次产生代码时,原USER处添加的代码不会发生变化。

HWD依赖HAL层,这种依赖在实现时使用HWD include HAL层内对应头文件。

为了在没有HWD层时,程序编译/链接/仿真不出问题,在HAL层内,使用弱函数(内部可以先为空,保证编译/链接正确),需要时在HWD层内实现同名函数功能

RTOS层在层级上位于HAL层上,具体是否调用HAL层接口,依赖具体实现。

文件目录结构参考如下:

STM32CubeMX_Project为CubeMX产生的代码,在USER处加入了依赖代码。

Source为除HWD外的程序。

Output为编译出的目标文件。

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

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

相关文章

消化性溃疡与胃肠道微生物群

谷禾健康 据柳叶刀统计,消化性溃疡(PUD)每年影响全球400万人,据估计普通人群终生患病率为5−10%(Lanas A et al., 2017)。尽管消化性溃疡的全球患病率在过去几十年中有所下降,但其并发症的发生率却保持不变。 消化性溃疡是指胃或十二指肠黏膜…

Color Control

设计一个优秀的用户界面是一项艰巨的任务。特别是如果你想改变UI的颜色,调整所有元素可能需要花费大量时间。Color Control可以帮助你!在检查器中以可视化的方式将你的项目颜色定义为资源。Color Control为你提供了组件,当你编辑它们时,它们会自动更新你的UI元素。 颜色控制…

nodejs发送消息给钉钉机器人

1.钉钉添加机器人 1.1 新建一个群 --> 群设置 --> 机器人 1.2 机器人管理 --> 添加机器人 1.3 机器人--> 自定义-->添加 1.4 配置信息 备注1:密钥复制出来SEC2c689174c4a8ed49c8a7309a490cd98e0e7f7bc788bb7232d53c738eb5f5d008 备注2:…

OpenHarmony内存泄漏指南 - 解决问题(综合)

本系列文章旨在提供定位与解决OpenHarmony应用与子系统内存泄露的常见手段与思路,将会分成几个部分来讲解。首先我们需要掌握发现内存泄漏问题的工具与方法,以及判断是否可能存在泄漏。接着需要掌握定位泄漏问题的工具,以及抓取trace、分析tr…

肠道炎症与年龄和阿尔茨海默病病理学相关:一项人类队列研究

谷禾健康 ​阿尔茨海默 研究表明,慢性低水平的炎症(“炎症衰老”)可能是年龄相关疾病的一个介导因素,而肠道微生物通过破坏肠道屏障可能会促进炎症。 虽然老化和阿尔茨海默病(AD)与肠道微生物群组成的改变有…

Android linphone-android sdk设置语音编码问题

1.遇到的问题 今天遇到linphone-android sdk需要解决语音编码问题,需要指定编码。查了下配置,里面没有发现类似的配置。 ## Start of factory rc # This file shall not contain path referencing package name, in order to be portable when app is r…

逻辑回归简单案例分析--鸢尾花数据集

文章目录 1. IRIS数据集介绍2. 具体步骤2.1 手动将数据转化为numpy矩阵2.1.1 从csv文件数据构建Numpy数据2.1.2 模型的搭建与训练2.1.3 分类器评估2.1.4 分类器的分类报告总结2.1.5 用交叉验证(Cross Validation)来验证分类器性能2.1.6 完整代码&#xf…

web动态月球特效

文章目录 效果预览文件分布代码 效果预览 文件分布 代码 鼠标点击特效 fireworks.js class Circle {constructor({ origin, speed, color, angle, context }) {this.origin originthis.position { ...this.origin }this.color colorthis.speed speedthis.angle anglethi…

OpenSSL——升级

OpenSSL(Open Secure Sockets Layer)是一个开源的软件库,提供了SSL和TLS协议的实现,用于加密通信。它广泛用于安全连接,例如在网站上通过HTTPS协议进行安全的数据传输. 但是从openssl申请道德证书是不安全的。对于网站…

再次拓宽信创生态版图,思迈特与统信软件完成产品兼容适配认证

近日,思迈特软件与统信软件科技有限公司(简称“统信软件”)完成产品兼容性适配互认证,加速国产信创生态化建设进程。 本次测试由商业智能与数据分析软件(简称:Smartbi Insight V11)产品与统信服…

safari缓存清理

safari缓存清理 点击顶端Safari浏览器–>点击偏好设置 点击隐私–>管理网站数据 全部移除

【python】爬取豆瓣电影排行榜Top250存储到Excel文件中【附源码】

一、背景 近年来,Python在数据爬取和处理方面的应用越来越广泛。本文将介绍一个基于Python的爬虫程 序,用于抓取豆瓣电影Top250的相关信息,并将其保存为Excel文件。 程序包含以下几个部分: 导入模块:程序导入了 …

微同城本地小程序源码系统:顺风车+二手市场+跑腿功能+信息发布+广告功能 带完整的搭建教程

随着移动互联网的普及,小程序已成为各行业进行线上业务拓展的重要工具。微同城作为一款集顺风车、二手市场、跑腿功能、信息发布和广告功能于一体的本地小程序源码系统,旨在满足现代城市居民的多元化需求,提供一个方便、快捷、实用的服务平台…

HackTheBox - Medium - Linux - Encoding

Encoding 前言 经过10个月左右的网安自学,我想说的第一句话无疑是:感谢TryHackMe。当然,后续的HackTheBox&学院、CRTO等等,对我的帮助都很大。 许多师傅们都在年度总结,我也看了大家都收获很多,都很…

如何委婉地告诉老板,BI连接金蝶ERP,对决策更有利?

网友:新入职一家企业,发现这家企业依旧是从金蝶ERP中导出数据做分析,这样数据量一大、科目变动多就很难保证数据分析的及时性、灵活性,说真的这对决策来说并不是什么好事。但老板似乎并不觉得这有什么不对。我该如何委婉地告诉老板…

吉林大学19、21级计算机学院《计算机网络》期末真题试题

一、21级(考后回忆) 一、不定项选择(一共10个选择题,一个两分,选全得满分) 不定项:可以选择1~4个 考点有: ①协议、服务 ②码分多路复用通过接受码片序列,求哪个站点发送…

PyCharm社区版设置简体中文界面

点击“File”, 出现的菜单中点击“Settings”, 在弹出的界面中,选“Plugins”, 然后在右边输入框中输入“chinese”, 在搜索结果中,选中Chinese(Simplified) Language Pack, 点击右边的“install”即可 最后“r…

打开软件游戏提示缺少msvcp140.dll的解决方法,修复缺少140dll文件的方法

一、msvcp140.dll是什么文件? msvcp140.dll是Microsoft Visual C 2015 Redistributable Package的一部分,它是运行许多Windows应用程序所必需的动态链接库文件之一。它包含了许多C类库,这些类库为开发人员提供了丰富的功能和工具&#xff0c…

【tensorflowflutter】自己写个机器学习模型用在项目上?

背景 拍摄APP项目上线有一阵了,每天的拍摄数据呈现波动上升状态、业务方需要对数据进行加工,如果能有对未来的数据量的预测就好了 。 目标 在端侧展示拍摄数据可视化趋势图等、并能推断数据(选择预测日期) 简单实现个demo gif背…

Keil5----生成hex文件和bin文件

Keil5编译环境搭建----教程目录 keil5----生成hex文件 具体步骤如下: 步骤1: 点击 魔法棒 “Options for Target” 。步骤2: 单击 Output。步骤3: 选择输出生成文件的路径。步骤4: 自定义生成的hex文件名。步骤5&am…