单片机通用复用组件C语言

组件内容:

组件包含内容有:MODBUS主从机管理(支持RTU和ASCII),内存管理(小内存管理算法),串口管理,消息队列,环形缓冲区,类线程间同步方法(信号量、互斥锁、事件集),软件定时器,命令交互客户端(类命令行),软件非阻塞延时,数据转换方法,IO输入输出操作等。

组件描述:

各个组件均可独立使用,提供用户接口对接底层,并配有详细注释、手册和使用例程,供学习使用。

组件源码:

mcu_reuse_development_module: 单片机可通用、可复用开发组件,内含:MODBUS主从机管理(支持RTU和ASCII),内存管理(小内存管理算法),串口管理,消息队列,环形缓冲区,类线程间同步方法(信号量、互斥锁、事件集),软件定时器,命令交互客户端(类命令行),软件非阻塞延时,数据转换,IO输入输出操作等。

各组件说明:

  • ./documents/存放组件使用文档
  • ./drivers/存放所有组件源程序
  • ./examples/存放所有组件的使用举例(使用必看)

drivers/common

all_include.h: 所有组件头文件集合
common_include.h: 通用头文件(所有组件都需包含此文件)

drivers/modbus

modbus_common.c/.h: modbus通用文件
modbus_host.c/.h: modbus主机程序(RTU ASCII)
modbus_slave.c/.h: modbus从机程序(RTU ASCII)

drivers/modules

command_line.c/.h: 命令行交互
data_check.c/.h: 数据校验方法集合
data_convert.c/.h: 数据转换方法集合
delay_no_block.c/.h: 非阻塞延时
input_output.c/.h: IO输入输出操作
memory.c/.h: 内存管理-小内存管理算法
message_queue.c/.h: 消息队列
ring_buffer.c/.h: 环形缓冲区
sync_method.c/.h: 伪线程同步方法(信号量,互斥锁,事件集)
timer_software.c/.h: 软件定时器
uart_handler.c/.h: 串口管理

drivers/segger_rtt

SEGGER_RTT官方文件,SEGGER_RTT.c:89行有固定输出地址方法

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

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

相关文章

如何在 NAS 上安装 ONLYOFFICE 文档?

文章作者:ajun 导览 ONLYOFFICE 文档 是一款开源办公套件,其是包含文本文档、电子表格、演示文稿、表单、PDF 查看器和转换工具的协作性编辑工具。它高度兼容微软 Office 格式,包括 .docx、.xlsx 、.pptx 、pdf等文件格式,并支持…

OpenHarmony 应用通用签名

一.背景 由于hap包需要经过签名才能安装到设备上,在DevEco Studio可以进行自动签名,但是自动签名只能安装在当前的设备上,在其他设备上不能安装,所以我们需要进行通用的手动签名,手动签名HarmonyOS和OpenHarmony流程是…

elasticsearch 笔记二:搜索DSL 语法(搜索API、Query DSL)

文章目录 一、搜索 API1. 搜索 API 端点地址2. URI Search3. 查询结果说明5. 特殊的查询参数用法6. Request body Search6.1 query 元素定义查询6.2 指定返回哪些内容6.2.1 source filter 对_source 字段进行选择6.2.2 stored_fields 来指定返回哪些 stored 字段6.2.3 docValue…

scanf函数返回值占位符详解,%*,%[]的应用

前言 scanf函数可以说是我们一开始就会接触的函数了,但在最近复习时我又找到而来一些之前不甚了解或是块要遗忘的知识,特作此篇。 一.返回值 我们之前提到了scanf返回值被忽略的问题: scanf函数返回值被忽略-CSDN博客 那么scanf的返回值…

Web3开发成本和主要特性

多年来,技术不断进步,可帮助您的业务领先于竞争对手。如今,您可以看到许多更新和变化,使技术更加先进,对企业更加有用。到现在为止,web1.2和2.0比较流行,但是要知道web 3才是技术之父&#xff0…

分布式系统架构设计之分布式系统实践案例和未来展望

分布式系统在过去的几十年里经历了长足的发展,从最初的简单分布式架构到今天的微服务、云原生等先进架构,取得了丰硕的成果。本文将通过实际案例分享分布式系统的架构实践,并展望未来可能的发展方向。 一、实践案例 1、微服务化实践 背景 …

三.Linux无名管道(PIPE)和有名管道(FIFO)的区别

目录 命名管道(Named Pipe): 无名管道(Anonymous Pipe): 总结: 无名管道(Anonymous Pipe)和命名管道(Named Pipe)都是进程间通信的机制&#x…

tcp/ip实现两个手机之间连接同步显示

app主界面 选择一:TCP客户端 选择二:TCP服务端 点击下图item时进入曲线绘制页面 如果是服务器端它不需要连任何设备就可以直接进入绘制界面如果是TCP的话就不能直接进入,否则就会提示未连接网络连接不能放在主线程,页面去调方法&…

IP地址的四大类型:动态IP、固定IP、实体IP、虚拟IP的区别与应用

在网络通信中,IP地址是设备在互联网上唯一标识的关键元素。动态IP、固定IP、实体IP和虚拟IP是四种不同类型的IP地址,它们各自具有独特的特点和应用场景。 1. 动态IP地址: 动态IP地址是由Internet Service Provider(ISP&#xff…

Linux:修改和删除已有变量

变量修改 变量的修改有以下几种方式: 变量设置方式说明${变量名#匹配字串}从头向后开始匹配,删除符合匹配字串的最短数据${变量名##匹配字串}从头向后开始匹配,删除符合匹配字串的最长数据${变量名%匹配字串}从尾向前开始匹配,删除符合匹配…

Python跨年烟花秀

写在前面 今年跨年怎么过呢~博主用python的pygame实现了一场炫酷的烟花秀,一起来看看吧! 环境需求 python3.11.4及以上PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境…

169. 多数元素(Java)

题目描述: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 输入: nums [2,2,1,1,1,2,2] 输出&#xff1a…

STM32CubeMX学习(二) USB CDC 双向通信

STM32CubeMX学习(二) USB CDC 双向通信 简介CubeMX新建工程(串口LED)测试串口和LED串口接收测试USB CDC通信 简介 利用正点原子F407探索者开发板,测试基于USB CDC的双向数据通信。 CubeMX新建工程(串口LE…

Prometheus通过consul实现自动服务发现

环境,软件准备 本次演示环境,我是在虚拟机上安装 Linux 系统来执行操作,以下是安装的软件及版本: System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 注意:这里为了方便启动 Prometheus、Consul服…

Vue Tinymce富文本组件自定义带下拉框的操作按钮

想实现如下效果 首先在init方法中的props,toolbar属性增加一个自定义按钮 增加一个setup方法 代码 setup: function(editor) { editor.ui.registry.addSplitButton(myDateButton, {text: 日期时间,onAction: (_) > editor.insertContent(getJsMonthDay(getNowDat…

算法训练第五十一天|300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

300. 最长递增子序列: 题目链接 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组…

Spring 是如何解决循环依赖的

1.什么是循环依赖? 所谓的循环依赖是指,A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。或者是 A 依赖 B,B 依赖 C,C 又依赖 A。它们之间的依赖关系如下: 2.通过手写代码演示理解Spring循环依赖 DEMO: pu…

tmpfs文件系统介绍

一、概述 tmpfs是一种基于内存的文件系统,它将一部分系统内存用作临时存储空间。在Linux系统中,tmpfs常用于挂载临时目录,如/run、/tmp和var等目录,用于存储临时文件、进程运行时数据和其他临时性数据。 tmpfs的优点:…

【机器学习】深度学习概论(二)

五、受限玻尔兹曼机(Restricted Boltzmann Machine,RBM) 5.1 RBM介绍 示例代码: Python 编写了一个简单的 RBM 实现,并用一些假数据训练了它。然后,他展示了如何用 RBM 来解释用户的电影偏好,以…

使用rust读取usb设备ACR122U的nfc卡片id

rust及其高效和安全著称,而且支持跨平台,所以就想使用这个rust开发一个桌面端程序,来读取nfc设备的nfc卡片的id信息,下面就做一个最简单的入门教程吧,也是我写的第三个rust应用。 当你电脑上安装好了rust环境之后&…