- 博客(524)
- 资源 (7)
- 收藏
- 关注
原创 单片机通过lwIP实现MQTT的发布和订阅
lwIP 是一套小型独立的 TCP/IP 协议栈实现。lwIP TCP/IP 实现的核心目标是在保留完整 TCP 功能的同时降低内存(RAM)占用。这一特性使 lwIP 非常适合用于的嵌入式系统。lwIP 最初由 Adam Dunkels 在瑞典计算机科学研究所(SICS)的计算机与网络架构(CNA)实验室开发,目前由全球范围内的开发者网络共同开发和维护。lwIP 相较于其他协议栈还有一个优势,即 lwIP 可以移植到操作系统上,也可以在无操作系统的环境下独立运行。
2025-12-17 20:00:00
637
原创 手把手教 - STM32 单片机 FlashDB 软件包的使用
该开源库也支持运行在 裸机平台。所以只需要将所用到的 Flash 对接到 FAL ,即可完成整个移植工作。
2025-12-16 20:00:00
815
原创 手把手教 - STM32 单片机 EasyFlash 软件包 实现参数持久化存储
EasyFlash是一款开源的轻量级嵌入式Flash存储器库,方便开发者更加轻松的实现基于Flash存储器的常见应用开发。非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能的产品,资源占用极低,支持各种 MCU 片上存储器。ENV 快速保存产品参数,支持 写平衡(磨损平衡) 及 掉电保护功能。
2025-12-16 07:00:00
1084
原创 7 端口多功能USB HUB控制器芯片CH339 —— USB HUB功能、USB转以太网功能、USB高速读卡器功能
符合标准:符合USB2.0协议规范。封装形式:采用QFN-32_L4.0-W4.0-P0.40-BL-EP2.7封装。应用场景:可应用于计算机和工控机主板、扩展坞、外设、嵌入式系统等场景。
2025-12-11 06:30:00
349
原创 电路设计——RS422、RS485模式自动切换电路
U2的A/B仅承担“发送”,U3的A/B仅承担“接收”,两者独立工作(全双工),最终实现RS422的4线全双工通信。U2的A/B同时承担“发送+接收”功能(半双工),U3仅提供失效安全电平,最终实现RS485的2线半双工通信。输入与门,功能是逻辑 “与” 运算(Y=A・B),用于整合 RS485/RS422 的接收信号。(对应RS485的AB线),U3的A/B引脚(RS422的RX+/RX-)悬空。(U2的接收输出,此时U2的A/B是发送端,接收输出无有效信号(高电平)) +(U3的接收输出),与门输出。
2025-12-09 19:00:00
1037
原创 单片机 使用 cJson 添加 无符号 32 位数值(uint32_t)溢出问题的解决办法
的最大值(2147483647)时,数据不正常。,使用的是 ARMCC 系统工具链 ,文件。单片机 使用在 cJSON 中添加无符号32位()数据出现「溢出」。)数据 ,超过 有符号32位(,查看此函数 调用关系 —>cJson 使用的函数是。
2025-12-05 20:00:00
461
原创 C语言-BCD码转换为十进制的测试和说明
处理固定长度的BCD码,方法4是最直接和高效的。对于变长BCD码,可以使用方法1进行通用转换。BCD码转换为十进制,以 BCD码(0x1234)为例。
2025-12-02 19:30:00
232
原创 中移物联4G模块-ML307C 的介绍和使用
中移物联(比邻智联) ML307C是新一代小尺寸国产化Cat.1 无线通信模组,采用翱捷科技ASR1605 芯片平台,专为物联网应用设计,具备高集成度、低功耗和强大扩展性。采用行业通用LCC+LGA 封装,可前向兼容ML307系列Cat.1模组,部分型号的外设接口。ML307C可广泛应用于金融支付、定位追踪、电动两轮车、视频监控等领域。资料下载地址ML307C采用LCC+LGA封装,109个引脚,其中LCC引脚48个,LGA引脚61个。该模组尺寸为 17.7mm15.8mm2.2mm。
2025-11-20 06:00:00
704
4
原创 RT-Thread 系统 ringbuffer(环形缓冲区)的使用
ringbufferbuffer_ptr 缓冲区基地址:实际存储数据的内存数组(通常为字节数组)。buffer_size 缓冲区大小:建议设置为2的幂次方(如128、256字节),利用位运算优化索引计算。读指针(read_index):指向当前可读取数据的位置。写指针(write_index):指向当前可写入数据的位置。read_mirror 和 write_mirror:可以理解为一种镜像值。
2025-11-10 07:00:00
1704
原创 步进电机的介绍 —— 二相四线式步进电机
二相四线式步进电机是一种将电脉冲信号转换为精确角位移的执行机构。简单来说,每给电机一个脉冲信号,它就会按固定的方向转动一个特定的角度(即一步)。"二相"指的是电机内部有两组独立的线圈(A相和B相),"四线"则是指每组线圈都有两个引出线,总共四根控制线。它的核心优点是控制精准、无累积误差。发送多少个脉冲,电机就转动多少步,位置非常精确。特性二相四线式步进电机核心原理按顺序给两相线圈通电,利用电磁力吸引永磁体转子步进旋转。控制方式四拍: 扭矩较小,有振动。八拍: 运行平稳,精度高(半步)。关键部件。
2025-11-05 07:00:00
710
原创 RS485 逻辑发送与接收的电平说明
驱动器 (发送)接收器 (接收)逻辑 1A > B(+2~+6V)B < A(VBA< -200mV)逻辑 0A < B(-2~-6V)B > A(VBA> +200mV)简单方法:站在发送方的角度去定义总线状态。发送逻辑1 : 让A线为正,B线为负(A > B)。发送逻辑0 : 让B线为正,A线为负(A < B)。而接收器只是一个“裁判”,它只关心A和B谁电压高,并根据这个来输出对应的逻辑电平。由于芯片设计,这个“裁判”的内部电路约定好了:当B脚电压低于A脚电压时,它就输出逻辑1。
2025-11-04 07:00:00
2539
原创 3通道 1.5A 1.5MHz同步降压电源管理 IC--TMI7003C
它集成了3个高效同步降压转换器,支持2.5V到5.5V的输入电压范围,输出电压低至0.6V,峰值电流能力为1.5A。该器件具有100%占空比的dropout操作、高效率同步模式操作、内部软启动、欠压锁定、旁路和过流及过温保护功能。TMI7003C是一款高度集成的电源管理IC,设计用于最小化消费和多媒体应用中的功耗。
2025-11-01 06:30:00
191
原创 MPU6050 的运动跟踪解决方案 —— InvenSense 官方提供的 MotionDriver 运动驱动库
MPU6050 芯片,它是一种六轴传感器模块,。,降低主控器的运算量。其姿态解算频率最高可达 200Hz,非常适合用于对姿态控制实时要求较高的领域。常见应用于手机、智能手环、四轴飞行器及计步器等的姿态检测。InvenSense 的 MotionDriver 是针对其 MPU 系列(如 MPU6050、MPU9250 等)运动传感器的底层驱动库,主要用于嵌入式系统中处理加速度计、陀螺仪等数据。利用传感器片上硬件模块(DMP)实现低功耗的四元数计算、手势识别(如敲击、翻转)及计步功能。
2025-10-30 07:00:00
1881
原创 电池管理芯片 TP4056- 恒流-恒压线性充电电路
保护功能 (Protection Features): 通常包含过压保护 (OVP)、短路保护 (SCP)、过温保护 (OTP) 等。充电截止电压 (Charge Termination Voltage): 4.2V (标准的单节锂离子电池充电电压)。充电状态指示 (Charge Status Indication): 通过引脚输出指示充电状。涓流充电 (Trickle Charge): 当电池电压过低时,以较小的电流进行预充电。封装 (Package): 通常为 SOP-8 或 MSOP-8。
2025-10-30 06:15:00
400
原创 运算放大器LMV358 - 设计 单2.7V 电源 将 0.5V 至 2V 的单端输入转换为 ±1.5V 的差分输出 的简单电路
VOUT+ 和 VOUT– 的范围均为 0.5V 至 2V。VDIFF 是指 VOUT+ 和 VOUT– 之间的差值。另一个放大器反转输入并添加参考电压以生成 VOUT–。一个放大器充当缓冲器 并产生电压 VOUT+。本示例特意限制输出范围以最大限度提高线性度。此电路由两个放大器构成。
2025-10-29 07:30:00
345
原创 电表 DLT698.45-2017 协议中 OAD (对象属性描述符) 说明
在协议中,是定位设备中具体数据对象的核心标识,其结构和确定方法需结合协议的和。
2025-10-25 08:00:00
882
原创 C# 定义和组织数据的方法 - Interface(接口)
/ IPoint.cs(接口定义)//{//}// 坐标点接口:定义坐标相关的行为规范} // 只读属性:X坐标} // 只读属性:Y坐标// 方法:计算到另一个点的距离// Point2D.cs(实现接口的类)//{//}// 2D坐标点实现IPoint接口// 实现接口的属性X = x;Y = y;// 实现接口的DistanceTo方法throw new ArgumentNullException(nameof(other), "目标点不能为空")
2025-10-24 06:00:00
541
原创 C# 定义和组织数据的方法 - Class(类)
/{//}// 只读属性(保持不可变,同struct行为)// 构造函数:初始化坐标X = x;Y = y;// 计算两点距离(方法逻辑不变)if (other == null) // 类可能为null,需增加空校验(struct不会为null)throw new ArgumentNullException(nameof(other), "目标坐标不能为空");return $"坐标: (X。
2025-10-23 06:30:00
1505
原创 C# 定义和组织数据的方法 - struct(结构)
用于存储控件位置、绘图坐标等,需包含X/Y值和基础计算逻辑。//{//}// 定义只读坐标结构(不可变)// 只读属性(确保不可变)// 构造函数:必须初始化所有字段X = x;Y = y;// 计算两点之间的距离(示例方法)// 重写ToString,方便在控件中显示return $"坐标: (X//class Point2D //{ //} // 定义只读坐标结构(不可变) public readonly struct Point2D {
2025-10-22 06:00:00
1013
原创 C# WinForms 参数配置与读取--app.config 配置文件
首先在app.config文件中添加配置节:</</</</</</</
2025-10-17 06:30:00
484
原创 C# WinForm 消息队列的使用--System.Collections.Concurrent
命名空间提供了多个线程安全的集合类,其中 ConcurrentQueue<T>是专为多线程场景设计的队列实现。与普通的Queue<T>不同,无需额外的锁机制即可安全地支持多线程并发读写,非常适合生产者-消费者模式等场景。
2025-10-16 06:30:00
1005
原创 GD32 All In One Programmer 打开提示 Cannot load library Ot5Core.dll 错误
Windows 7 系统,64位系统, 打开 GD32 All In One Programmer 打开提示。
2025-10-15 06:00:00
234
原创 C# WinForms 多窗口交互通信的示例-主窗口子窗口交互通信
C# WinForms中多窗口之间各种通信方式的示例。示例包含一个主窗口和多个子窗口,测试开发中常用的几种通信方式。可以根据实际项目需求选择合适的通信方式,也可以结合多种方式使用。
2025-10-14 06:00:00
955
原创 GD32 基于rt-thread 实现 DP83848网线热插拔
方式一:测试介绍:插上网线,正常上电,查看打印信息并测试网络是否正常;拔掉网线,查看打印信息并测试网络是否正常;插上网线,查看打印信息并测试网络是否正常;拔掉网线,查看打印信息并测试网络是否正常;插上网线,查看打印信息并测试网络是否正常。方式二:测试介绍:拔掉网线,正常上电,查看打印信息并测试网络是否正常;插上网线,查看打印信息并测试网络是否正常;拔掉网线,查看打印信息并测试网络是否正常;插上网线,查看打印信息并测试网络是否正常。
2025-09-26 06:00:00
975
原创 蓝牙低功耗协议GAP、ATT、GATT简单介绍
协议英文全称核心职责比喻GAP设备如何被发现和连接(广播、扫描、角色)社交礼仪:如何自我介绍和认识他人ATT数据如何被传输(客户端/服务器模型、读写指令)借阅规则:如何借书和还书GATT数据如何被组织(服务、特征、描述符的层次结构)图书分类:如何将书分门别类放到不同的书架关系GATT 依赖于 ATT:GATT使用ATT定义的命令(读、写、通知等)来操作数据。GATT 和 ATT 依赖于 GAP:只有在GAP完成了设备发现和连接建立之后,ATT和GATT的通信才能开始。
2025-09-23 06:30:00
1042
原创 C# WinForm 中的 Invoke 方法详解--处理跨线程 UI 访问
在 C# WinForm 应用程序中,Invoke方法是一个非常重要的线程安全机制,用于解决跨线程访问 UI 控件的问题。由于 Windows 窗体控件不是线程安全的,只能由创建它们的线程(通常是主 UI 线程)进行访问和修改。当从非 UI 线程(如工作线程或后台线程)尝试直接访问 UI 控件时,会抛出跨线程异常。由于WinForm的UI控件具有“线程亲和性”(只能由创建它们的线程——通常是主线程/UI线程——操作),后台线程直接修改UI会导致程序异常。Invoke。
2025-09-17 06:30:00
1540
原创 sscanf 强大的字符串解析函数
是 C 语言中一个非常强大的字符串解析函数,允许从字符串中按照指定格式提取数据。参数说明: 要解析的源字符串: 格式字符串,指定如何解析输入: 可变参数,用于存储解析结果的变量地址返回值成功匹配并赋值的参数个数如果遇到输入失败,返回 EOF(End Of File)基本格式说明符格式符说明有符号十进制整数整数(可识别八进制和十六进制)无符号十进制整数浮点数双精度浮点数字符字符串(遇到空白字符停止)匹配字符
2025-09-13 06:00:00
669
原创 Arm Linux 下的视频设备检测与NIR/RGB识别-- 通过指令v4l2-ctl
是 Linux 系统中用于查询 V4L2(Video for Linux 2)兼容视频设备的核心命令,主要作用是列出系统中所有可用的视频捕获 / 输出设备(如摄像头、视频采集卡、虚拟视频设备等),并显示设备的关键信息。通过 v4l2-ctl 工具(来自 v4l-utils 工具包)的 --list-devices 选项,可快速获取系统中所有 V4L2 设备的 名称、描述、关联的设备节点路径 等信息。
2025-09-12 06:30:00
587
原创 Arm Linux 下的视频设备检测与NIR/RGB识别
检查设备名称和总线信息中是否包含"NIR"、“IR”、“mono"等关键词来识别红外摄像头,或"RGB”、"color"等关键词来识别彩色摄像头。C语言脚本程序,用于自动检测Linux系统中的/dev/video设备并获取详细信息,用于识别和区分不同类型的摄像头。:结合设备名称和支持的像素格式,给出摄像头类型的综合判断。
2025-09-11 07:15:00
286
电表 dlt698.45-2017 dlt645-2007 上位机测试软件,获取地址和电能的C#源码
2025-12-10
电表 dlt698.45-2017 dlt645-2007 上位机测试软件,获取地址和电能
2025-12-10
### 苏州华芯微电子股份有限公司射频产品介绍
2025-07-31
mqtt-client-Csharp-MQTTnet,tls连接例程
2023-01-06
Development_of_NET_Applications_for_OPC_UA_Part_3_of_3
2022-07-01
如何判断三极管的三个状态,开关、放大、截止
2020-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅