自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(231)
  • 资源 (24)
  • 收藏
  • 关注

原创 C语言实现设计模式—总结

记录自己对设计模式的理解和使用。

2020-08-19 18:04:05 2542 1

原创 C语言实现设计模式-策略模式+命令模式组合使用

文章目录使用环境介绍使用策略模式使用命令模式使用环境介绍当主设备和从设备使用串口信息交互通讯,根据串口协议,实现对从设备的控制访问。使用情况1:当主设备发送板卡信息获取、读取数据命令时,希望获取从设备的数据信息,从设备应答操作。使用情况2:当主设备发送采集命令时,从设备收到但不进行回复,不应答操作。使用策略模式首先识别命令,对需要进行应答的命令进行判断,区分动作使用命令模式...

2020-08-02 11:19:50 3285

原创 通用接口函数注册模块设计与实现

通用接口函数注册模块()是一个用于实现动态函数注册的轻量级工具。它通过偏移量计算和函数指针赋值的方式,实现了C语言中类似面向对象的接口机制。模块支持动态注册、调试日志输出,并且易于扩展。void* ctx;// 设备上下文通过接口注册模块,可以在C语言中实现类似面向对象的接口机制。它不仅简化了代码结构,还提高了模块的可扩展性和可维护性。无论是驱动开发还是插件系统,这个模块都能提供强大的支持。

2025-04-08 18:56:03 107

原创 C语言-查表法详解与实践

查表法是一种将复杂的条件判断转换为表驱动的编程技术,通过建立映射表来替代繁琐的if-else或switch-case语句。fill:#333;color:#333;color:#333;fill:none;查表法表结构定义查找算法数组映射结构体映射顺序查找索引查找查表法是一种简单而有效的编程技术,通过合理使用可以显著提升代码质量和运行效率。

2025-04-03 13:52:30 821

原创 cJSON- API 深度解析:设计理念与实现原理(二)

这些 API 的设计充分体现了 cJSON 的设计理念:简单、高效、安全。通过合理的抽象和封装,既保证了使用的便利性,又不失灵活性和性能。

2025-03-26 18:24:06 652

原创 cJSON-轻量级 C 语言 JSON 解析库的使用(一)

在当今互联网时代,JSON (JavaScript Object Notation) 已成为数据交换的通用格式。对于 C 语言开发者来说,cJSON 库提供了一种简单而强大的方式来处理 JSON 数据。本文将深入剖析 cJSON 的设计理念、核心功能和实际应用场景。cJSON 是由 Dave Gamble 开发的一个轻量级 JSON 解析和生成库,使用纯 C 语言编写,仅包含一个头文件和一个源文件,总代码量不到 4000 行。简单、高效、易用。

2025-03-26 17:05:50 1158

原创 epoll:Linux 高性能 I/O 多路复用技术

epoll 是 Linux 内核提供的高效 I/O 事件通知机制,于 2.6 版本内核中引入。它解决了传统 select 和 poll 在高并发场景下的性能瓶颈问题,成为构建高性能网络服务器的首选技术。epoll 作为 Linux 平台上的高性能 I/O 多路复用机制,通过创新的设计解决了传统 select/poll 的性能瓶颈,为构建高并发网络应用提供了强大支持。掌握 epoll 的使用,对于开发高性能服务器至关重要。《Linux 高性能服务器编程》,游双著。

2025-03-24 19:00:20 1087

原创 内存管理模块设计与实现

在嵌入式系统或需要精确控制内存使用的场景中,一个良好的内存管理模块至关重要。内存使用追踪内存分配记录内存泄漏检测线程安全设计内存对齐支持/* 链表节点 */void *ptr;/* 申请地址 *//* 申请大小 *//* 申请行数 *//* 申请函数名 *//* 已经使用内存 *//* 最大使用内存 *//* 信息记录 *//* 初始化标记 */完整的内存追踪能力线程安全的实现便捷的调试接口灵活的内存对齐支持详细的使用记录。

2025-03-24 17:24:44 699

原创 设计模式的六大原则

单一职责原则:一个类只做一件事开闭原则:对扩展开放,对修改关闭里氏替换原则:子类可以替换父类接口隔离原则:接口要小而专一依赖倒置原则:依赖抽象而不是具体迪米特法则:降低对象之间的耦合这六大原则是设计模式的基础,遵循这些原则可以帮助我们写出更好的代码。它们不是硬性规定,而是指导原则,需要根据实际情况灵活运用。

2025-03-23 20:02:27 406

原创 C语言-发布订阅模式详解与实践

发布订阅模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题。这个主题在状态发生变化时,会通知所有依赖于它的订阅者对象,使它们能够自动更新。发布订阅模式通过解耦发布者和订阅者,实现了灵活的消息通知机制。这种模式特别适合处理事件驱动的场景。

2025-03-23 19:55:06 686

原创 C语言-MVC模式详解与实践 - 温度监控系统

MVC模式将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于实现关注点分离,使得程序更容易维护和扩展。MVC模式通过分离关注点,使得温度监控系统的代码结构更加清晰,便于维护和扩展。这种模式特别适合处理数据、显示和用户交互的系统。

2025-03-23 19:33:03 688

原创 C语言-装饰器模式详解与实践 - LED控制系统

装饰器模式允许我们动态地向对象添加新的功能,而不改变其原有结构。在LED控制系统中,我们可以通过装饰器模式实现不同的LED效果叠加。装饰器模式在LED控制系统中的应用,使得我们可以灵活地组合不同的LED效果,同时保持代码的清晰和可维护性。这种模式特别适合需要动态组合多种LED效果的场景。

2025-03-23 19:24:02 670

原创 C语言-状态模式详解与实践 - OTA升级状态机

在OTA升级过程中,设备会经历多个不同的状态(如空闲、下载、校验、升级等),每个状态下的行为和响应都不同。状态模式可以帮助我们清晰地管理这些状态转换和相应的行为。通过状态模式,我们实现了一个清晰、可维护的OTA升级状态机。这种设计方式使得复杂的升级流程变得条理分明,同时也便于后续功能扩展。

2025-03-23 19:11:03 1016

原创 C语言-访问者模式详解与实践

这个例子展示了访问者模式在嵌入式系统中的实际应用。通过将传感器数据采集和处理逻辑分离,我们可以灵活地添加新的数据处理方法,同时保持代码的清晰和可维护性。

2025-03-23 18:59:58 457

原创 C语言-适配器模式详解与实践

适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器让原本由于接口不兼容而不能一起工作的类可以协同工作。适配器模式通过转换接口,使得原本不兼容的系统能够协同工作。这种模式特别适合系统升级或整合第三方库的场景。

2025-03-23 18:52:16 1084

原创 C语言-桥接模式详解与实践

桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们都可以独立地变化。这种模式通过组合的方式建立两个类之间的关系,而不是继承。桥接模式通过将抽象和实现分离,实现了它们的独立变化。这种模式特别适合处理跨平台或需要支持多种实现的场景。

2025-03-23 18:48:28 789

原创 C语言- 工厂模式详解与实践

工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,而是通过一个共同的接口来指向新创建的对象。工厂模式通过封装对象的创建过程,提供了一种灵活且可扩展的对象创建机制。这种模式特别适合处理需要创建多种类型对象的场景。

2025-03-23 18:43:13 927

原创 【NXP i.MX6ULL 使用】IMX6Y2C-512M-EMMC 设备树配置文档

【代码】【NXP i.MX6ULL 使用】IMX6Y2C-512M-EMMC 设备树配置文档。

2025-02-12 10:45:32 509

原创 Linux 应用层 GPIO 编程指南

GPIO(General Purpose Input/Output)是通用输入输出端口,可以通过软件控制实现输入输出功能。

2024-10-31 14:25:51 895

原创 signal() -函数的详细使用说明

函数用于设置特定信号的处理方式。它允许程序在接收到特定信号时执行自定义的处理函数,或者采用默认的处理方式,也可以选择忽略该信号。这些信号在不同的操作系统上可能会有一些细微的差别,但总体上它们的行为是相似的。在编写程序时,可以根据需要使用。函数或其他信号处理机制来改变这些信号的默认行为,以实现更灵活的程序控制和错误处理。这个函数接收两个参数,返回一个函数指针。以下是一个完整的示例代码,展示了如何使用。

2024-10-29 14:32:52 1780

原创 【modbus协议】常用字节转换函数

【代码】【modbus协议】常用字节转换函数。

2024-10-29 10:56:05 208

原创 Modbus从机模式多包数据解析方案

多包循环解析指针偏移管理解析次数限制功能码分类处理有效解决了 Modbus 从机模式下的多包数据处理问题,提高了数据处理的可靠性和效率。

2024-10-29 10:43:25 267

原创 【modbus协议】libmodbus库移植基于linux平台

【代码】【modbus协议】libmodbus库移植基于linux平台。

2024-10-28 17:21:06 1740

原创 【modbus协议】Modbus-TCP消息帧格式

Modbus Application Header 是 Modbus TCP 通信中的关键部分,它提供了事务标识、协议标识、数据长度和设备标识等信息,帮助客户端和服务器正确解析和处理 Modbus 请求和响应。通过理解这些字段的含义和作用,可以更好地实现和调试 Modbus TCP 通信。

2024-10-28 15:51:59 1526

原创 【modbus协议】大小端

介绍modbus协议大小端区别

2024-10-28 10:57:30 770

原创 TLS 加密的原理和过程

TLS(Transport Layer Security,传输层安全协议)是一种为网络通信提供安全及数据完整性保障的安全协议。TLS 的主要目的是在两个通信应用程序之间提供保密性和数据完整性。它通过使用对称加密、非对称加密和哈希函数等多种加密技术来实现这一目标。通过以上过程,TLS 实现了在不安全的网络环境中安全地传输数据。

2024-10-09 23:02:26 738

原创 【MQTT协议使用总结】基于-FreeRTOS平台-移植MQTT协议栈

实际使用过程中,遇到了lwip阻塞的阻塞情况,注意采用非阻塞方式进行读取。

2024-09-18 22:07:16 622

原创 【QT】定时器使用

一、创建与初始化使用QTimer类来创建定时器。可以在构造函数中指定父对象,确保定时器在正确的对象生命周期内被管理。,这里的this表示定时器的父对象,通常是一个QObject派生类的实例,这样可以确保在父对象销毁时,定时器也能被正确清理。二、设置时间间隔通过方法设置定时器的时间间隔,单位为毫秒。设置定时器每 1000 毫秒触发一次。三、连接信号与槽使用connect函数将定时器的timeout信号与相应的槽函数连接起来,以便在定时器超时时执行特定的操作。,当定时器超时时,会调用。

2024-09-15 22:22:21 1804

原创 【QT】基础入门学习

槽是一个普通的成员函数,可以在任何 Qt 对象中定义。槽函数可以有不同的参数和返回值类型,具体取决于需要处理的信号。例如,一个槽函数可以用来处理按钮点击事件,执行一些特定的操作,如打开一个新窗口、更新数据等。为了建立信号与槽的连接,可以使用connect函数。这个函数接受发送者对象、发送者发出的信号、接收者对象和接收者的槽函数作为参数。例如:connect(senderObject, SIGNAL(signalName()), receiverObject, SLOT(slotName()));。

2024-09-08 19:12:01 941

原创 【MA35D1】buildroot 编译使用经验

NuMicro® MA35D1系列为一颗异核同构的多核心微处理器,适用于高端 Edge IIoT Gateway。它是基于双核 64 位 Arm® Cortex-A35 内核,执行速度可达 800 MHz,并搭载一颗 180 MHz Arm Cortex-M4 内核。基于此高性能内核,MA35D1 系列有助于 Tiny AI/ML 边缘运算。

2024-09-02 21:39:01 1552

原创 Linux 终端重定向技术详解:串口日志捕获实现

在嵌入式系统开发中,串口日志对于调试和问题排查至关重要。传统的串口日志查看方式需要物理连接,这在远程开发环境下存在诸多不便。本文介绍一种基于TIOCCONS的终端重定向技术,实现远程捕获串口日志的功能。本文详细介绍了基于TIOCCONS的终端重定向技术,通过系统调用和设备控制实现串口日志的远程捕获。这种方案在远程开发和调试中具有重要应用价值,但需要注意安全性和资源管理等关键问题。

2024-08-13 15:15:17 264

原创 【RV1126 学习】SDK/ U-Boot/kernel/rootfs 编译学习

对RV1126的编译过程学习总结

2024-01-13 00:14:45 5738

原创 【基础工具篇使用】Windows环境下瑞芯微开发工具的安装和使用

瑞芯微的工具使用,烧录

2024-01-09 22:59:34 7567 6

原创 【基础工具篇使用】ADB 的安装和使用

ADB工具的基础使用

2024-01-08 23:31:11 2134

原创 【基础工具篇使用】VScode 远程 Ubuntu 系统 进行使用

利用VScode 进行远程开发,作为基础的开发工具使用

2024-01-07 22:20:29 2802

原创 Linux 使用 FFTW库在多线程环境下的线程安全问题分析与解决方案

在多线程环境中使用 FFTW 库时,需要特别注意:只有及其变体是线程安全的其他函数需要互斥锁保护正确初始化和清理避免资源泄漏合理使用锁保护共享资源优化计划创建和复用减少锁竞争使用线程本地存储通过合理的设计和实现,可以在保证线程安全的同时,充分发挥 FFTW 库的性能优势。

2023-10-26 09:13:18 3487

原创 使用 cJSON 解析超范围整数导致的 CRC 校验失败分析

在处理大数值时,要特别注意数据类型的范围限制使用 cJSON 时,优先使用而不是已废弃的valueint根据实际需求选择合适的数据类型,必要时进行安全的类型转换。

2023-02-09 10:58:38 3726

原创 【成功解决】Git 如何在自己的分支上更新主分支代码

git在自己的分支上更新主分支代码

2023-01-14 11:41:38 5587

原创 【成功解决】gitlab的密钥配置

gitliab使用

2022-12-29 15:31:44 3393

原创 【代码大全】——高质量的子程序

【代码大全】——高质量的子程序

2022-10-19 22:41:16 2084

DS-000189-ICM-20948-v1_1_89_translate.pdf

DS-000189-ICM-20948-v1_1_89_translate,ICM-20948翻译的中文数据手册,仅供参考

2019-10-09

一个程序员应该有的编程修养.pdf

编程修养 有需要的可以下载看看,内容还不错。 编程修养 有需要的可以下载看看,内容还不错。

2019-08-19

用C-语言实现面向对象编程.pdf

用 C 语言实现面向对象编程,我曾经在嵌入式控制系统工作过,苦于嵌入式系统编程一直是 C 语言,而没法用 C++或其他高级 语言的面向对象方法编程。经过研究生的学习和探索,偶然间发现高焕堂老师写 OOPC(面向对象 C 编程),感觉不错。遗憾的是上面没有提供继承的方法。根据本人的研究,在高老师的基础上,提出一 种可行而且结构明了的继承实现方法。至此,C 的 OO 编程中的封装、继承、多态都全实现了。现在 本人将其总结如下,希望对大家有帮助。

2019-08-13

Test1-20190803.rar

使用STM32H7单片机, Modbus RTU 做主机的测试程序,可成功读取模拟的采集数据,方便程序移植

2019-08-08

MODBUS模拟软件.rar

ModScan32 和 Modsim32 用来调试Modbus 非常方便 是学习的好工具

2019-08-05

OO命令解析器-工程源码.rar

C 语言对象化设计实例 — 命令解析器

2019-06-30

Linux设备模型之input子系统详解.rar

Input 子系统驱动架构分析,很详细的分析了Input 子系统驱动架构

2019-06-26

Exynos4412数据手册文档

Exynos4412手册芯片手册完整版 ,Exynos4412手册2芯片用户手册,完整版本,50多兆,共计2858页

2019-05-31

并发程序设计L5.rar

华清远见培训资料,内容包括多进程编程,进程间通信机制,多线程编程,多线程间的同步和互斥机制等。

2019-05-21

MPU6050中文资料.doc

MPU6050中文资料.doc

2019-05-13

深入浅出Linux环境编程(进程基础+IPC+POSIX+线程同步与互斥)配套资料

深入浅出Linux环境编程(进程基础+IPC+POSIX+线程同步与互斥)配套资料

2019-05-06

华清远见-linux文件IO培训资料

华清远见-linux文件IO培训资料,介绍关于IO的基本操作,有配套的资料

2019-05-05

嵌入式技术与应用丛书 汽车电子KEA系列微控制器 基于ARM Cortex-M0+内核 [王宜怀,李跃华著][电子工业出版社].pdf

嵌入式技术与应用丛书 汽车电子KEA系列微控制器 基于ARM Cortex-M0+内核 [王宜怀,李跃华著][电子工业出版社][2015.08][355页][13839627].pdf

2019-04-08

飞思卡尔MC9S12(X)开发必修课__冯冲,段晓敏编著_北京:北京航空航天大学出版社

飞思卡尔MC9S12(X)开发必修课__冯冲,段晓敏编著_北京:北京航空航天大学出版社

2019-04-08

AnalogDevices.ADuCM36x_DFP.1.0.0.pack

AnalogDevices.ADuCM36x_DFP.1.0.0.pack Keil 里面添加ADucM360型号

2019-04-04

STM32 AD7124

STM32F4 + SPI调试AD7124 程序参考,需要的可以下载。

2019-03-29

AD7124参考程序

stm32通过软件SPI来驱动,可以直接抑制,能够正常读写

2019-03-29

物联网全栈教程PDF

关于物联网的一些参考文档,有一定的学习价值,需要的可以下载

2019-03-29

STM32F10x_StdPeriph_Driver_3.5.0(中文版)

STM32F10x_StdPeriph_Driver_3.5.0(中文版) STM32开发参考

2019-03-29

VS2010之MFC串口通信的编写教程

VS2010之MFC串口通信的编写教程,适合初学者学习参考。

2019-03-29

AD7124英文手册

AD7124-8是一款适合高精度测量应用的低功耗、低噪声、完整模拟前端。 该器件内置一个低噪声24位Σ-Δ型ADC,可配置为提供8个差分输入或15个单端或伪差分输入。 片内低噪声级确保ADC中可直接输入小信号。 AD7124-8的主要优势之一是用户可灵活使用三种集成功率模式。 功耗、输出数据速率范围和均方根噪声可通过所选功率模式进行定制。 该器件还提供多个滤波器选项,确保为用户带来最大的灵活性。

2019-03-29

AD7124中文手册

AD7124-8是一款适合高精度测量应用的低功耗、低噪声、完整模拟前端。 该器件内置一个低噪声24位Σ-Δ型ADC,可配置为提供8个差分输入或15个单端或伪差分输入。 片内低噪声级确保ADC中可直接输入小信号。 AD7124-8的主要优势之一是用户可灵活使用三种集成功率模式。 功耗、输出数据速率范围和均方根噪声可通过所选功率模式进行定制。 该器件还提供多个滤波器选项,确保为用户带来最大的灵活性。

2019-03-29

空空如也

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

TA关注的人

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