自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(195)
  • 资源 (5)
  • 收藏
  • 关注

原创 MQTT 协议中 PUBLISH 和 PUBACK 介绍

功能PUBLISH 命令用于从客户端向服务端(或反向)传输一个应用消息。它是 MQTT 协议中用于消息发布的核心命令。语法固定报头(Fixed Header):包含报文类型(0x03),DUP 标志(是否重复发送),QoS 等级(0, 1, 或 2),RETAIN 标志(是否保留消息),以及剩余长度(Remaining Length,表示可变报头和有效载荷的总长度)。可变报头。

2024-07-22 06:00:00 156

原创 STM32 移植MQTT

在STM32上移植MQTT客户端库(如Paho MQTT C库)涉及几个关键步骤,包括库的选择、环境配置、代码集成和测试。下面是一个概括的指南,帮助你开始这个过程。

2024-07-22 02:15:00 402

原创 MQTT CONNECT命令的详细解释和说明

CONNECT命令是MQTT协议中客户端与服务器建立连接时发送的第一个报文。通过该命令,客户端向服务器提供必要的信息,如客户端标识符、用户名、密码等,以便服务器进行身份认证和会话管理。综上所述,CONNECT命令是MQTT协议中建立客户端与服务器连接的关键步骤,它通过包含客户端标识符、遗嘱信息、身份认证信息等参数,确保了连接的可靠性和安全性。注意:上述示例中的二进制数据(如客户端标识符、用户名、密码的16进制表示)仅为示意,实际使用时需要根据MQTT服务器的要求和客户端的实际情况进行编码和加密。

2024-07-21 03:30:00 619

原创 下载Paho MQTT C库有几种常见的方法

如果你使用的是支持包管理的集成开发环境(IDE)或构建系统,如Keil MDK、IAR Embedded Workbench或CMake等,你可以检查这些工具是否提供了对Paho MQTT C库的支持。虽然我不能直接提供下载链接(因为链接可能会随时间而变化),但你可以按照上述步骤在GitHub上找到Paho MQTT C库的最新下载链接。由于Eclipse Paho项目托管在GitHub上,因此你可以直接从GitHub仓库下载Paho MQTT C库的源代码。

2024-07-21 03:30:00 532

原创 MQTT剩余长度字段的编码方案

MQTT剩余长度字段的编码方案通过变长度的字节序列来表示可能的很大范围的剩余长度值,最高可达268,435,455字节(即256MB),这种设计使得MQTT协议能够高效地处理不同大小的报文。同时,该编码方案也考虑了编码后的数据紧凑性,减少了传输过程中的数据冗余。

2024-07-20 05:45:00 319

原创 MQTT 报文类型

MQTT目前定义了多种控制报文类型,这些报文可以分为几个主要的功能类别,包括连接、发布、订阅等。CONNECT功能:客户端与服务器建立连接时发送的第一个报文。组成:由固定报头、可变报头以及有效载荷组成,包含客户端的标识符、协议版本、连接标志等信息。CONNACK功能:作为对CONNECT报文的响应,由服务器发送给客户端,确认连接是否成功建立。包含信息:连接返回码和会话标志等。PUBLISH功能:用于客户端向服务器或客户端发送MQTT消息。包含信息。

2024-07-20 04:15:00 324

原创 MQTT 消息数据结构介绍

MQTT协议(Message Queuing Telemetry Transport,消息队列遥测传输协议)的结构主要由三个部分组成:固定报头(Fixed Header)、可变报头(Variable Header)和有效载荷(Payload,有时也称为消息体)。

2024-07-19 06:30:00 1180

原创 MQTT 固定报头中的剩余长度介绍

MQTT协议中的剩余长度(Remaining Length)是一个重要的概念,它表示当前报文剩余部分的字节数,包括可变报头和负载的数据,但不包括用于编码剩余长度字段本身的字节数。

2024-07-19 04:45:00 262

原创 MQTT 与HTTP 比较

综上所述,MQTT与HTTP在设计目的、速度与效率、架构与模式、消息QoS支持以及连接方式等方面都存在显著的差异。MQTT更适用于需要实时数据更新和多设备通信的物联网场景,而HTTP则更适用于传统的Web服务和客户端-服务器交互模式。

2024-07-18 11:22:44 653

原创 为什么大家都喜欢使用VIM

综上所述,VIM以其高效性、可定制性、轻量级、强大的社区支持和习惯养成的特点吸引了大量用户。尽管学习和掌握VIM需要一定的时间和努力,但一旦熟练掌握,它将成为你编程和文本编辑的强大工具。

2024-07-18 09:51:41 214

原创 MQTT 协议的优势

MQTT(Message Queuing Telemetry Transport)协议是一种轻量级的消息协议,专为在设备之间以及设备与服务器之间的高效、可靠通信而设计。MQTT 协议在物联网(IoT)、移动应用、智能城市等领域中得到了广泛的应用。综上所述,MQTT 协议以其轻量级、高效、可扩展、可靠、易于实现和使用以及支持异步通信和安全性等优势,在物联网等领域中得到了广泛的应用和认可。

2024-07-18 09:47:49 133

原创 MQTT常见应用场景

MQTT协议因其轻量级、高效和可扩展的特性,在物联网(IoT)和机器对机器(M2M)通信中拥有广泛的应用场景。

2024-07-18 08:58:58 167

原创 mqtt 简介

定义:MQTT是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议,它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。开发者:该协议由IBM公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿兰·尼普于1999年共同撰写了第一个版本。特点:MQTT协议具有轻量、简单、开放和易于实现的特点,这些特点使其适用范围非常广泛,尤其是在受限的环境中,如机器与机器(M2M)通信和物联网(IoT)。

2024-07-18 08:54:21 350

原创 Sourcetree 常用功能演示

Sourcetree是一款流行的Git和Mercurial桌面客户端管理工具,它提供了一个图形用户界面,使得Git和Mercurial的版本控制操作更加直观和易于使用。

2024-07-15 07:30:00 335

原创 如何使用Sourcetree进行Git克隆/新建

使用Sourcetree进行Git克隆(Clone)/新建操作,可以按照以下步骤进行。请注意,以下步骤基于Sourcetree的通用界面和操作流程,但具体界面可能会因版本更新而略有不同。

2024-07-15 04:45:00 533

原创 git 创建分支--命令行

在Git中创建分支是一个简单而强大的操作,它允许开发者在不影响主代码库的情况下进行独立的开发和测试。通过遵循上述步骤和注意事项,你可以有效地管理Git分支,促进团队协作和项目进展。

2024-07-14 05:30:00 308

原创 git 分支介绍

分支)的情况下进行开发或修复工作。你提到的五种分支类型是在Gitflow工作流(Gitflow Workflow)中常见的,这种工作流旨在提供一个清晰的项目开发流程,确保项目质量的同时提高开发效率。Gitflow工作流通过明确的分支类型和角色,帮助团队在保持项目稳定的同时,高效地进行功能开发和bug修复。在Git版本控制系统中,分支(Branch)是一种非常强大的功能,它允许开发者在不影响主代码库(如。

2024-07-14 03:30:00 742

原创 Sourcetree 下载 安装 配置 使用

一次,确保一致(十分注意:这样你才能达到和别人最新代码同步的状态,同时也能够规避很多不必要的问题)。:将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消。:从远程仓库获取信息并同步至本地仓库,并且自动执行合并(:团队工作时,每个人创建属于自己的分枝(加载创建一个与远程仓库一样的本地仓库。:将本地仓库同步至远程仓库,一般推送(:从远程仓库获取信息并同步至本地仓库。:将暂存区文件上传到本地代码仓库。即将已暂存的文件丢回未暂存的文件。:添加文件到缓存区。:移除文件至缓存区。

2024-07-13 05:15:00 169

原创 [linux]查看文件内容

按空格键:向前翻页。使用箭头键:进行精确的上下滚动。后输入关键字并回车:搜索内容。:显示当前行号等信息。

2024-07-13 03:30:00 139

原创 免费流程图工具 Draw.io Integration安装使用

Draw.io Integration 是 VS Code 上的一个插件,允许用户在 VS Code 中直接创建、编辑和查看 Draw.io 图表,如流程图、UML 图等。

2024-07-12 07:30:00 314

原创 【python学习】将两个 数组连接起来

对于Python的原生列表,你可以使用加号(+)操作符或者extend()方法。对于NumPy数组,你可以使用numpy.concatenate()函数或numpy.append()函数(尽管numpy.append()在性能上可能不是最优选择,因为它总是返回一个新的数组)。在大多数情况下,对于Python列表,使用加号(+)操作符是最直接和最简单的方法。对于NumPy数组,numpy.concatenate()是更常见和推荐的方法,因为它更加高效且易于理解。使用Python原生列表。

2024-07-12 05:00:00 235

原创 HAL_DMA_ERROR_BUSY

是一个在STM32 HAL(硬件抽象层)库中可能出现的错误标志,它表示DMA(直接内存访问)控制器当前正忙,无法接受新的数据传输请求。当尝试启动一个DMA传输操作,但DMA控制器已经处于忙碌状态时,这个错误标志可能会被设置。

2024-07-11 05:30:00 219

原创 linux编写驱动程序常用API

在Linux设备驱动开发中,有许多常用的API,这些API提供了与内核和其他驱动程序交互的功能。9. 设备树(Device Tree)和ACPI。5. I/O端口和内存操作。8. 消息队列、管道和信号。10. 电源管理和热插拔。1. 设备注册与注销。

2024-07-11 04:00:00 400

原创 如何才能在Linux下编写驱动程序

1. 了解Linux驱动开发基础知识。3. 编写驱动程序代码。4. 编译和加载驱动。8. 可选的高级步骤。

2024-07-10 08:00:00 211

原创 写一个字符设备的驱动步骤

以上步骤是一个典型的字符设备驱动编写流程,但具体实现可能因设备和需求的不同而有所差异。在实际编写过程中,建议参考Linux内核文档和相关书籍以获得更详细和准确的信息。

2024-07-10 04:15:00 382

原创 网络模型介绍

网络模型在网络领域中主要指的是用于描述计算机网络系统功能的各种框架,其中最具代表性的两种模型是OSI七层参考模型和TCP/IP四层参考模型。

2024-07-09 06:00:00 801 1

原创 常见的网络协议在不同的模型中层次分布

常见的网络协议根据其功能和作用,分布在OSI七层参考模型或TCP/IP四层参考模型的不同层次中。

2024-07-09 05:45:00 535

原创 C语言中关键字

综上所述,C语言中的关键字涵盖了数据类型定义、程序控制流程、变量存储方式以及特殊用途的各个方面,是C语言编程的基础。

2024-07-08 04:15:00 641

原创 stm32 使用GPIO模拟串口发送

在STM32微控制器上实现模拟串口输出(也称为软件串口或比特邦定(Bit-Banging)串口),主要是因为硬件上的UART资源有限或者为了特定需求而需要更多的串口通信接口。模拟串口意味着使用GPIO引脚模拟UART的TX(发送)和RX(接收)功能,通过软件控制GPIO引脚的电平变化来发送和接收数据。

2024-07-08 04:00:00 306

原创 size_t类型

类型是 C 和 C++ 标准库中定义的一个无符号整数类型,用于表示对象的大小(如数组的元素数量、内存块的大小等)。它是无符号的,意味着它不能表示负数,这通常是因为对象的大小(如数组的长度或内存块的字节数)总是非负的。的具体大小(即它所占用的位数)依赖于编译器和目标平台,但它在大多数现代系统上通常是 32 位或 64 位。通常是 64 位宽的,可以表示的最大值是 2^64 - 1(即一个非常大的数,远远超出了大多数程序所需的范围)。可以使代码更加可移植,更容易在不同的系统和编译器上编译和运行。

2024-07-08 02:15:00 285

原创 Linux 文件描述符 fd

命令可以查看指定进程(PID 为。)打开的文件描述符列表。

2024-07-07 06:15:00 285

原创 linux 管道符 |

在Linux中,管道符()是一个非常重要的概念,它允许你将一个命令的输出作为另一个命令的输入。这种机制使得Linux命令可以非常灵活地进行组合,从而执行复杂的任务。

2024-07-07 04:15:00 457

原创 HEX文件格式

HEX文件,全称为Intel HEX,是一种ASCII文本文件,用于记录文本行的数据。它常用于存储将被写入ROM或EPROM中的程序和数据。HEX文件由一系列符合Intel HEX文件格式的文本行构成。

2024-07-06 06:45:00 304

原创 【单片机编程模式】状态机编程

总之,状态机编程是一种基于有限状态机的编程模式,它通过明确的状态和状态转移路径来组织程序的逻辑结构,使得程序更加清晰、易于理解和维护。在嵌入式开发等领域中,状态机编程是一种常用的编程模式。状态机编程是一种编程模式,它基于有限状态机(Finite State Machine,简称FSM)的概念。

2024-07-06 06:45:00 345

原创 Linux 编译生成静态库以及动态库全流程

在Linux系统中,通常不直接使用.lib作为库文件的扩展名,因为.lib是Windows平台下常用的静态库文件扩展名。然而,Linux下对应的静态库文件扩展名是.a(archive),而动态库文件扩展名是.so以下是在Linux下编译生成静态库(.a文件)和动态库(.so文件)的全流程,并给出示例代码。

2024-07-05 06:15:00 451

原创 const与#define 比较

在 C 和 C++ 中都是用于定义常量或常数值的,但它们之间存在一些重要的差异。

2024-07-05 05:45:00 394

原创 C语言中的内存分配

在C语言中,内存分配是一个重要的概念,它决定了你的程序如何存储和使用数据。C语言提供了几种不同的内存分配方式,每种方式都有其特定的用途和限制。函数在堆上动态地分配了一个可以存储5个整数的内存块。然后,我们使用这个内存块来存储一些数据,并在完成后使用。函数来释放这个内存块。函数时,我们需要检查它是否返回了。在这个示例中,我们首先使用。,因为如果内存分配失败,

2024-07-04 05:00:00 184

原创 malloc、calloc、realloc的区别

函数来分配、初始化和重新分配内存。注意,在使用这些函数时,一定要检查返回值是否为。,以确保内存分配成功。另外,在不再需要内存时,应使用。函数来释放内存,以避免内存泄漏。这些示例展示了如何使用。

2024-07-04 04:15:00 397

原创 zoom 会议视频软件的使用

Zoom会议视频软件的使用指南可以归纳为以下几个步骤,每个步骤都包含了详细的说明和必要的数字信息:

2024-07-03 09:31:44 937

原创 文心一言常用的指令

文心一言作为一款强大的人工智能模型,支持多种类型的指令,以满足用户的不同需求。

2024-07-03 09:24:02 439 1

libtiff读tiff.rar

libtiff库的源码程序的演示代码,该例子用来演示如何读tiff图像,是初学tiff图像格式的入门程序! (libtiff library procedures demo source code, the examples used to demonstrate how to read tiff images, when a tiff image formats entry procedures!)

2020-04-29

Tiff Image Article.rar

打开Tiff的vc源代码,好用。(the vc open source code and ease of use)

2020-04-29

tifAPI.rar

功能类似libtiff库,此为c语言源码版本。Function similar to libtiff library, this is the c language source version)

2020-04-29

libtiff.lib.rar,libtiff库文件,包含.dll以及.lib

编译libtiff得到的库文件,直接添加后可以直接使用。主要支持windows32位曹祖系统。文件中包含有:libtiff.lib以及libtiff.lib

2020-04-29

read.rar,TTFF,LIBTIFF

利用libtiff库,使用VS2015编译环境将fax4压缩格式的.tiff文件转换为fax3格式的文件。支持多页转换

2020-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除