STM32 CubeMX产生的程序架构

使用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.hqwc.cn/news/323385.html

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

相关文章

【数据分析实战】冰雪大世界携程景区评价信息情感分析采集词云

文章目录 引言数据采集数据集展示数据预处理 数据分析评价总体情况分析本人浅薄分析 各游客人群占比分析本人浅薄分析 各评分雷达图本人浅薄分析 差评词云-可视化本人浅薄分析 好评词云-可视化本人浅薄分析 综合分析写在最后 今年冬天,哈尔滨冰雪旅游"杀疯了&q…

微服务应用可观测性解决方案介绍

目录 一、可观测性出现背景 二、什么是可观测性(Observability) 2.1 可观测性的不同解析 2.1.1 百度维基解析 2.1.2 IBM解析 2.1.3 CNCF(云原生计算机基金会)组织解析 2.1.4 我的个人理解 2.2 可观测性和监控的区别与联系 …

探讨芯片封装的技术、工艺以及与之相关的知识

芯片封装作为芯片技术中的重要环节,扮演着保护和连接芯片的关键角色。通过封装工艺,芯片能够与外界进行通信并在实际应用中发挥作用。本文将深入探讨芯片封装的技术、工艺以及与之相关的知识。 芯片封装的概念与意义 芯片封装是指将芯片封装在特定的封…

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

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

SD杂症:TemporalKit的key关键帧无图片问题

本地安装好temporalkit后,进行Ebsynth预处理后,居然发现key文件夹里,没有一张图片 搜遍百度,搜到了原因,也搜到了解决方案 但是。。。。这个解决方案我觉得很不cool,像个打补丁的老师傅,缝缝补补…

Linux第4步_安装VMwareTools

安装Ubuntu操作系统后,就可以安装VMwareTools了,目的是实现“电脑和虚拟机之间互相复制粘贴文件”。 1、双击桌面图标“VMware Workstation Pro”,然后点击下图中的“开机”,打开虚拟机电源。 2、双击下图中的用户名“zgq” 3、…

自学 c++ 要掌握哪些技巧和方法?

自学 c 要掌握哪些技巧和方法? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&…

钼铁,需求量将推动市场进入新一轮发展浪潮

钼铁是一种重要的冶金原料,广泛用于制造高速钢、不锈钢、合金钢、特殊钢等钢材,并且被广泛应用于核工业、电子工业、航空航天等高技术产业领域。随着钢铁市场的不断发展,钼铁市场也逐渐壮大,下面将从全球市场和中国市场分析其发展…

chrome浏览器自动填充密码的字号设置不生效

问题 刷新浏览器初始化字号很小 随便点击一下就会恢复我设置的字号大小 原因 给表单设置自动填充 autocomplete“on” 后,chrome会默认给自动填充的input表单加上 input:-webkit-autofill 私有属性 解决办法 方法一,对私有属性设置样式&#xff0…

C++完成使用map Update数据 非二进制

1、在LXMysql.h和LXMysql.cpp分别定义和编写关于pin语句的代码 //获取更新数据的sql语句 where语句中用户要包含where 更新std::string GetUpdatesql(XDATA kv, std::string table, std::string where); std::string LXMysql::GetUpdatesql(XDATA kv, std::string table, std…

相机同步遇到的小问题

出现问题 在进行两个相机显示的时候,出现了相机显示不同步的情况,具体情况如下视频所示: 华睿/大华相机左右相机显示不同步 可以见到视频之中,右相机是比左相机更快一点的,但是有的时候就是同步的。我调用的代码是现成…

企业级大数据安全架构(二)安全方案

作者:楼高 1 Knox访问控制 Apache Knox是一个为Apache Hadoop部署提供交互的应用网关,通过其REST API和用户友好的UI,为所有与Hadoop集群的REST和HTTP交互提供了统一的访问点。Knox不仅仅是一个访问网关,它还具备强大的访问控制…