最近收集的开源项目专栏(持续更新,收好车轮,方便造车)

简介: 最近收集的开源项目专栏(持续更新,收好车轮,方便造车)

640.png

经常在公众号这个菜单互动的小伙伴可能知道,最近我在这里偷偷加了一个开源项目的专栏,这个专栏主要是持续收集一些嵌入式方面的开源项目,当然也包括我自己开源的,目前已经更新了19个项目。

1 一个好用的量产集成测试工具

分享一个刚毕业的时候写的一个量产测试工具吧,采用的是C语言来编写,刚开始应用在Linux和Android平台上,后面通过移植也用在单片机上,使用起来也非常简单。


分享一个自己量产项目上的集成测试软件MTTEST

2 基于C标准库实现的键值对读写工具

ini 文件是Initialization File的缩写,即初始化文件,这是用来配置应用软件以实现不同用户的要求。


INI文件由节、键、值组成。一个简单的的INI文件例子如下:

[Setting]
INIT_FLAG=0;
VOLUME=1;
LANGUAGE=1;

分享一个好用的C语言.ini文件的解析库


基于小熊派SD卡+Fatfs+移植开源iniparse解析库并使用

3 两个好用的按键组件

在嵌入式系统或单片机程序开发过程中,经常会遇到各种按键的需求,比如按键短按、按键长按、按键双击,这些功能虽然不难,但想要完全写好这些功能并不简单。网上已经有大神实现了这样的组件,该组件的特性如下:


  • 使用时系统不阻塞
  • 低耦合性
  • 同一个按键可实现单击、双击、长按
  • 可根据按键线序更改,比如高电平触发或低电平触发


分享一个很好用的按键组件


第1期 | MultiButton,一个小巧简单易用的事件驱动型按键驱动模块


个人使用案例实现:


开源按键组件MultiButton支持菜单操作(事件驱动型)

4 两个好用且优雅的软件定时器框架

在一些项目里,我们要使用的定时器资源很多,假设硬件资源有限,那也不用愁,接下来将要介绍的是一个开源软件模块:MultiTimer


MultiTimer 是一个软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。


分享一个简单易用的软件定时器模块


还有一个轻量级的软件定时器SmartTimer


SmartTimer是一个轻量级的基于STM32的定时器调度器,在单片机裸跑的情况下,可以很方便的实现异步编程。


开源项目SmartTimer


个人使用案例实现:


超轻量级网红软件定时器multi_timer(51+stm32双平台实战)


基于小熊派光强传感器BH1750实践(multi_timer+状态机工程应用)


基于小熊派光强传感器BH1750状态机驱动项目升级(带LCD屏显示)


基于小熊派WIFI-ESP8266实践(中)-多功能处理显示等大杂烩


基于小熊派气体传感器MQ-2综合实践

5 一个好用的SPI FLASH开源项目SFUD

SFUD 全称 Serial Flash Universal Driver,是一款开源的串行 SPI Flash 通用驱动库。


SFUD | 一个简洁实用的开源项目,帮你轻松搞定SPI Flash

6【开源】省资源、高稳定的MQTT客户端

这一个基于socket API之上的跨平台MQTT客户端,拥有非常简洁的API接口,以极少的资源实现QOS2的服务质量,并且无缝衔接了mbedtls加密库。


【开源】省资源、高稳定的MQTT客户端

7 超牛逼的高度可移植的菜单架构

今天给大家推荐一个非常不错的菜单架构,好朋友宋工写的,他把他认为最能拿得出手的东西贡献了出来,是一个挺不错的菜单架构,大家拿到源码,可以自己学习借鉴下。


完全由C编写,高度可移植,超级牛逼的菜单架构!

8 替代传统的打印调试printf

介绍另一种打印调试的方法——SEGGER 的RTT 。RTT全称是Real Time Transmit(实时传输),是Segger公司推出的,是配合J-link使用的一种调试手段。


替代串口打印,快来围观嵌入式中另一种打印调试的方法

9 专为MCU项目开发提速的代码框架Baby OS

BabyOS适用于MCU项目,是一套管理功能模块和外设驱动的框架。


对项目而言,缩短开发周期。项目开发时选择适用的功能模块及驱动。直接进入功能代码编写的阶段。


对工程师而言,减少重复工作。调试过的功能模块和驱动代码放入BabyOS中进行管理,以后项目可以直接使用,去掉重复调试的工作。


专为MCU项目开发提速的代码框架BabyOS

10 开源代码格式化工具Astyle

Astyle全称Artistic Style,是一个免费,快速,小型的自动格式化程序,适用于C,C++,C++/CLI,Objective‑C,C#和Java源代码。


分享一个在Keil开发环境中配置代码格式化工具Astyle(美化代码风格)

11 无线点菜宝

这是一款过时的,用STM32开发的一款手持类产品,虽然产品过时,但是技术并不过时,值得学习,目前产品已经断货了,但硬件和软件都开源。


开源STM32产品:无线点菜宝使用评测

12 常用的C语言经典测试学习案例

平时大家学习的一些C语言测试案例。


别瞎找了,你要的C语言经典示例都在这~

13 一个超轻量级的JSON解析器

众所周知,JSON是一种轻量级的数据格式,应用广泛。在C/C++应用中也常常作为配置文件或者数据的存储,因此JSON文件的生成和解析是必备知识。


一个超轻量级的JSON解析器

14 GitHub嵌入式高星开源项目

关于GitHub,可能很多人误以为这是互联网人的专属,其实并不是,那上面嵌入式相关的开源项目是有很多的。现分享一些高星开源项目(像RT-Thread、AWTK等大家都熟知的就不介绍了):


分享GitHub上一些嵌入式相关的高星开源项目

15 STM32F103产品级开源项目:iLook.Time

  • 2013年开始设计iTrack+yeelink,由于各种原因,该项目夭折。
  • 2014年年初开始提出面向产品的开源平台:iLook
  • 2015年5月发起iLook.爱路客
  • 2015年8月发起iLook.Time并开源

640.png

STM32F103产品级开源项目:iLook.Time设计解读

16 深圳云之手科技开源炫酷RGB灯板DIY项目

本文的RGB灯板是采用WS2812B的全彩灯,源码是采用SPI+DMA的方式驱动全彩灯,灯板要求的时序比较高,是微秒级别,本文所有延时均采用定时器处理,采用了合泰和STM32的MCU,目前本文选用的是STM32的STM32F103CBT6进行编写的处理,本项目纯属于娱乐时间开发的,最终展示效果:


深圳云之手科技开源炫酷RGB灯板DIY项目

17 华大开源火爆全网的额温枪方案(硬件+源码)

在疫情期间,涌现了不少为抗疫做贡献的企业,华大半导体有限公司就是其中一家,在国内额温枪紧缺的情况下,华大半导体就将自研的抗疫方案额温枪自主芯片、自主软、硬件,多热电堆匹配算法等额温枪方案资料开源共享,助力国内相关企业用开源的额温枪方案快速做出产品助力国内抗疫。现在,我们具体来看看开源了哪些东西:

640.png

分享一个近期开源火爆全网的额温枪方案(硬件+源码)

火爆全网开源额温枪同平台之华大HC32L136 SDK开发入门

18 云之手红外式测温计产品设计分享(基于合泰BH67F2752方案)

这次介绍的是深圳市云之手科技有限公司的测温产品,出自陈工之手,这也是他个人目前开源的第二个项目,也是个非常成功的项目,产品已经实现大批量产。


云之手红外式测温计产品设计分享(基于合泰BH67F2752方案)

19 WIFI DTU产品设计与实现(基于STM32F103+QT配置上位机案例设计分享)

使用 WIFI 模组,完成 DTU 的功能,就叫做 WIFI DTU,WIFI DTU 的实现难点在于配网以及后期多端口及多种协议和端口的适配。

640.png

640.png

WIFI DTU产品设计与实现(基于STM32F103+QT配置上位机案例设计分享)

我将会一直汇总下去,敬请期待!

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
6月前
|
数据采集 安全 NoSQL
《吐血整理》-顶级程序员工具集(4)
《吐血整理》-顶级程序员工具集
|
6月前
|
自然语言处理 监控 IDE
《吐血整理》-顶级程序员工具集(3)
《吐血整理》-顶级程序员工具集
|
设计模式 算法 NoSQL
冲刺金九银十!GitHub中文社区秋招趋势最热的面试题被我整理好了
面对已经过去的金三银四很多小伙伴都受到了很大的挫折! 最近收到一个小伙伴金三银四在阿里的面试流程完全被吊打,和我一起看看阿里都问了什么吧!
|
搜索推荐 Java 测试技术
牛客社区项目(第六章)
牛客社区项目(第六章)
225 0
牛客社区项目(第六章)
|
消息中间件 Dubbo NoSQL
今年我读了四个开源项目的源码,来分享下心得(上)
今年我读了四个开源项目的源码,来分享下心得(上)
今年我读了四个开源项目的源码,来分享下心得(上)
|
消息中间件 Dubbo 应用服务中间件
今年我读了四个开源项目的源码,来分享下心得(下)
今年我读了四个开源项目的源码,来分享下心得(下)
今年我读了四个开源项目的源码,来分享下心得(下)
|
Web App开发 存储 搜索推荐
PyHubWeekly | 第十二期:Python数据分析师不可错过的优质项目
PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。 我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly[1],如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~
PyHubWeekly | 第十二期:Python数据分析师不可错过的优质项目
|
安全 数据安全/隐私保护 iOS开发
精品资源汇总:(持续更新)
精品资源汇总:(持续更新)
202 0
精品资源汇总:(持续更新)
|
设计模式 程序员 开发者
干货!攻城狮的交流分享!聊一聊开发人员快速提升自己的方式
本文分享了作为开发人员,快速提升自己的几种方式。主要包括建立一个实质性的项目,向开源项目作出自己个人的奉献,阅读高级的代码,在阅读高级的代码过程中,要考虑到应该阅读什么样的代码以及如何阅读高级代码。最后,也是很重要的是,要主要了解更多的编程设计模式和编程原理。
180 0
干货!攻城狮的交流分享!聊一聊开发人员快速提升自己的方式