

一些单片机比赛,开发中的问题解决办法
source link: https://blog.csdn.net/zhong1213/article/details/122367343
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

博客链接:https://hanbaoaaa.xyz/id/1450
从问题出发
- 单片机种类繁杂,库也各不相同
- 无意义的学习成本:每学习一个ide可能就要花费大量时间来熟悉操作,快捷键
- 脱离开版本管理的代码,无法对学习有一个实质性的记录,代码的复用基于文件拷贝,相当低效
- 宏定义等配置性内容过度耦合在代码中,降低了复用性
=》一种解决思路:构建通用库,使用更现代的vscode进行代码编写
市面上最火的就是arduino,还有国内的rtthread在包环境管理方面都是做的不错的
比较推荐都去了解一下
=》但是有一个新的问题:
对于比赛,此类框架都很大型,不适宜自己进行不同平台的适配
=》整个协会,几个人之间,团队内,或者个人,构建自己的通用库
(推荐多人,个人有些浪费时间
大致思路:
-
关于通用库
- 基本代码部分分为
- 适配层
- 平台(mcu种类),
- 对应mcu的内置功能(延时,串口,adc,iic,spi…
- 外设层
- 传感器
- 各类传感器
- 传感器
- 算法
- 信号处理算法
- 适配层
- 开发的时候。我们调用都使用共同的api,这样在遇到新的平台要求时候,直接进行适配层的编写即可
- 基本代码部分分为
-
引入版本管理
进行模块化git管理,git的submodule功能为我们提供了项目的组合功能,这样便可以将每一个模块作为子仓库引入到项目中。但是submodule也存在一个缺点,不太容易管理,所以我专门在vscode上开发了一个插件
这个插件可以直接让你自己设计自己的项目子模块结构,并且根据需要进行加载,只要修改used标签,也可以对仓库进行重命名。
然后一键进行子模块仓库的加载
-
解决宏定义耦合在代码中问题
-
这个问题需要外部脚本的帮助,因为宏是一种死代码,像cmake这种管理工具就会提供这样的功能,各类ide也会提供,但是宏多起来之后就会混乱,所以我设计了一种层次化描述宏的插件,
大概的思路是在每一个库(模块)目录下创建一个描述文件(该文件名可以预先配置 下面我配置的是describe.txt
在describe.txt中写上
然后可以通过插件遍历整个项目结构中相关宏 以及 目标生成的头文件
header=目标头文件
宏定义名称|宏定义默认值
然后使用插件可以进行遍历项目结构中所有描述文件,并生成配置树
以后只要在树里面配置即可进行不同平台的迁移了
-
这些是我个人在电子类学习和比赛中发现的传统模式中的不足点和想到的较为有效的解决办法,希望可以对大家有所帮助,能让各位将精力更多的放到技术底层原理,拓宽技术的眼界,而不是繁琐冗余的不同工程平台学习中去,学习发现和解决问题本身的能力
ps:一篇文章没法具体的讲清各个细节,欢迎有兴趣,有能力的同学来进行交流
相关的项目以供参考
ActivePeter/paMcuLib: My commonLib for MCUs. 我的mcu通用库 (github.com)
Recommend
-
266
website upgrading… 京ICP备110065...
-
9
蓝桥杯单片机(CT107D)需要准备的一些文件的写法 Tsanfer 3/2/2020 85 单片机
-
7
Bo-Blog 系统中 Tags 的大小写问题解决办法 谢益辉 / 2007-08-12 在 Bo-Blog 博客系统中,Tags 默认都是被转化为小写形式的,不知道官方为何采取这种限定形式。我感觉大部分程序语言都是区分大小写(Case Sensitive)的,所以这种...
-
24
1 min readasp.net无法getshell的一些解决办法2021-06-28实际环境中经常碰到asp.net的站,这些站点多采用asp.net mvc、asp.net core或者是预编译等等,而采用这些方案最恶心的点在于无法拿到webshell来进行下一步渗透。本文主要讲解在asp....
-
5
100¥悬赏一个问题解决办法(C#)-微软技术-CSDN问答4条回答 默认 最新 王大师王文峰 2021-10-26 06:56
-
6
最近把这个没人访问的小站从Typecho转回了Wordpress,没啥特别的原因,只是换了主机想折腾折腾。Typecho很优秀,但一直没更新,给人感觉没人在维护了(刚发现好像马上要出新版了)。 自己所学所做和IT行业半毛钱...
-
8
V2EX › Windows hyper-v 有办法解决串口转 usb 问题吗? huangya · 2 小时 8 分钟前 · 92...
-
10
-
5
解决 CSDN 恶心人的一些办法 2020-10-25 其他 约 269 字 预计阅读 1 分钟...
-
3
最近开发中解决的一些性能问题 今天是年前最后一天工作,我想对最近做的一些事情做一些记录。 我们在使用自研引擎开发游戏时,遇到了不少和预期设...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK