知识分享
文章平均质量分 90
分享自己的所知所闻
知识噬元兽
打造一个完整的知识体系
展开
-
【知识分享】MQTT实战-使用mosquitto客户端连接emqx服务器
MQTT(Message Queuing Telemetry Transport)是一种轻量级的、基于发布/订阅模式的通信协议,旨在实现物联网设备之间的低带宽、高延迟的通信。MQTT协议设计简洁,使用TCP/IP协议进行通信,适用于各种网络环境,尤其适合在有限的网络带宽和不稳定的网络连接条件下进行通信。原创 2024-09-07 22:56:09 · 1114 阅读 · 0 评论 -
【知识分享】ubuntu22.04-ESP32环境搭建
要在Linux环境下进行开发工作,那就意味着需要在Linux环境中搭建ESP32适当的开发环境。本文主要是在官方搭建文档的基础上进行一些查缺补漏,适合新手阅读。原创 2024-08-20 22:40:39 · 1248 阅读 · 0 评论 -
【学习记录】从0开始的Linux学习之旅——字符型设备驱动及应用
Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。基于前面应用与驱动的开发学习,本文主要讲述如何在linux系统上把应用与驱动的链路打通,即在应用中使用新增的驱动接口。原创 2023-12-07 23:00:24 · 451 阅读 · 0 评论 -
【学习记录】从0开始的Linux学习之旅——应用开发(helloworld)
Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。本文主要讲述如何在linux系统上进行应用开发。原创 2023-12-02 00:00:38 · 1828 阅读 · 0 评论 -
【学习记录】从0开始的Linux学习之旅——驱动模块编译与加载
Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。本文主要讲述如何编译及加载linux驱动模块。原创 2023-11-27 00:03:55 · 1009 阅读 · 0 评论 -
【学习记录】从0开始的Linux学习之旅——编译linux内核
Linux操作系统通常是基于Linux内核,并结合GNU项目中的工具和应用程序而成。Linux操作系统支持多用户、多任务和多线程,具有强大的网络功能和良好的兼容性。本文主要讲述如何编译linux内核。原创 2023-11-21 23:44:17 · 526 阅读 · 0 评论 -
【知识分享】C语言应用-易错篇
C语言结构简洁,具有高效性和可移植性,因此被广泛应用。但究其历史的标准定义,C语言为了兼容性在使用便利性作出很大牺牲。在《C陷阱与缺陷》一书中,整理出大部分应用过程中容易出错的点,本文为《C陷阱与缺陷》的浓缩版本,想要更详细的解释,可以查看原著。原创 2023-08-30 15:38:40 · 1990 阅读 · 0 评论 -
【知识分享】C语言的设计模式——责任链、观察者
责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。观察者模式(Observer Pattern),则是当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。原创 2022-12-13 23:40:36 · 1185 阅读 · 2 评论 -
【知识分享】C语言应用——指针篇
C语言基础大部分都很好理解,唯一入手门槛比较高的,就数指针了。指针是C语言的一大特色,因为指针,C语言可以极度灵活,但也因为指针,C语言变得很不安全。指针就是一把双刃剑,用好了可以让你如虎添翼,用得不好,也会让你找问题的时候摸不着头脑。原创 2022-11-30 18:43:19 · 1870 阅读 · 1 评论 -
【知识分享】C语言中的设计模式——命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。将实际含义功能映射为命令功能码进行表示,就像007只是一个间谍代号,而不是直接以名字进行区分。这样做的好处是可以统一编号管理。原创 2022-10-27 23:17:29 · 1653 阅读 · 0 评论 -
【知识分享】C语言中的设计模式——解释器
解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。原创 2022-09-26 22:34:13 · 1977 阅读 · 1 评论 -
【知识分享】数据结构的应用——链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。由于在物理存储上可以以非连续状态存在,使得链表变得极其灵活。同时,链表就是C语言指针最完美的表现形式之一。常见的链表形式有两种,单向链表和双向链表。原创 2022-09-25 15:54:50 · 1871 阅读 · 0 评论 -
【知识分享】数据结构的应用——队列
对于数据结构,其实学过C语言的都不陌生,无外乎就队列、栈、二叉树等等这些。但其实对于初学者最困惑的不是数据结构是怎么样的,而是数据结构有什么用?我自己也是工作好几年后才体验到数据结构的快乐。所以本系列文章重点从应用场景切入,让大家理解数据结构的好处。原创 2022-09-21 08:39:25 · 2823 阅读 · 0 评论 -
【知识分享】C语言中的设计模式——适配器、装饰者和代理
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。此模式应用到C语言中,跟装饰者和代理这两种模式很接近,所以这里把这三个放一起讲,这三种模式在C语言里经常用到,叫做接口封装。原创 2022-09-12 17:08:12 · 1292 阅读 · 1 评论 -
【知识分享】C语言中的设计模式——状态模式
状态模式,其实就是平时所说的状态机,一般指的是FSM(Finite State Machine)有限状态机,分Moore和Mealy两种类型。但这里不讨论具体的状态机形式,只讲其核心思想。状态机分为状态切换和状态执行两部分,将行为和切换条件分离。原创 2022-09-11 16:43:40 · 2361 阅读 · 2 评论 -
【知识分享】C语言中的设计模式——单例模式
在23种设计模式中,单例模式属于创建型模式,在面向对象设计里是最简单的一种设计模式。在C语言设计中也很简单,实际就是创建一个唯一的变量实体,全局共享。原创 2022-09-06 07:03:56 · 1597 阅读 · 0 评论 -
【知识分享】C语言中的设计模式——表驱动模式
表驱动本身是强烈依赖于数组结构,可以是一维数组,也可以是多维数组,然后根据该数据的分布式结构进行数据索引。即使是使用一维数组,也是通过数组下标索引到对应的数据,从索引这个角度来看,是Key-Value这种键-键值的对应关系,像极了在表格中查找数据(通过行和列找到对应的格子),所以称之为表驱动。............原创 2022-09-01 08:37:35 · 2876 阅读 · 4 评论 -
【知识分享】知识链路-Modbus通信知识链路
本文主要是理顺Modbus相关的知识链路,从软件、硬件层面上梳理涉及的各类知识,并提供相应的知识传送门。原创 2022-07-31 15:28:02 · 1094 阅读 · 0 评论 -
【知识分享】C语言中的设计模式——开篇
从一个普通的码农成为架构师的第一步,就是要从代码搬运转化为有自己一套设计方法。架构设计的基石,就是要拥有一套可信手拈来的设计模式。原创 2022-07-31 15:28:35 · 4236 阅读 · 4 评论 -
【知识分享】异步串行收发器Uart(串口)-通信协议详解
串口意思是串行通信接口,与之对应的是并行通信接口。下面具体来看下什么是串行通信和并行通信。 串行通信,就是数据是按时间先后顺序一串串发出去的。比如现在要发一个13(对应二进制是1101)的数据,那第一个时钟周期先给一个1,第二个时钟周期给个0,第三个给1,第四个给1。然后当对方这四个时钟周期接收到这4个数据后,再把它还原成原本13的数据,这就完成了一次串行通信。 并行通信,就是数据是按空间角度并行发送的。比如现在一样要发一个13(对应二进制是1101)的数据,那如果要在同一时刻发原创 2022-06-12 08:11:19 · 3617 阅读 · 0 评论 -
【知识分享】Modbus通信协议详解
Modbus是一种一主一从的一对一通信方式(主机发一帧,从机回一帧的形式),当然也一主多从,但实际也是一对一通信,同一时刻只能有一个从机进行响应。如果需要和多个从机同时通信,这里也支持使用广播,即主机发送指令,所有从机接收指令并执行,但不进行应答。可以参考国标标准(以下简称国标),GBT 19582-2。.........原创 2022-06-05 09:52:59 · 39019 阅读 · 3 评论