自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

原创 嵌入式开发者必备资料库 【完全免费】

🔗 访问链接:点击链接即可加入「【嵌入式学习菌】资料3群」网盘群:https://pan.baidu.com/j/1nuvgVPLlpk。我们为大家准备了一份丰富的嵌入式资料网盘,涵盖了单片机、Linux系统、硬件设计等多个领域的优质资源,助力你的学习和项目开发!欢迎大家积极分享自己的学习心得和项目经验!如果你有其他有价值的资料,也可以随时上传到网盘,与大家共同进步。让我们一起探索嵌入式世界的无限可能,提升技能,推动创新!亲爱的嵌入式开发爱好者们,相关工具和软件的使用指南。驱动开发和系统优化技巧。

2024-08-29 22:48:52 987 1

原创 TCP通信与MQTT协议的关系

代码协作:通过函数调用链(MQTT 封装→TCP 发送,TCP 接收→MQTT 解析)实现两层协议的协同,确保数据从应用层(MQTT)到网络层(TCP)的无缝传输,适用于嵌入式设备的远程通信(如传感器数据上报、远程配置下发)。这种分层设计使代码模块化,便于维护(如更换 TCP 模块时,只需修改 drv_M26_Tcp* 函数,不影响 MQTT 逻辑),是物联网设备网络通信的典型实现。传输:调用 drv_M26_TcpSend,将 MQTT 数据包作为 TCP 字节流发送(底层通过模块的 TCP 通道)。

2025-05-30 16:53:50 1048

原创 mqtt协议连接阿里云平台

域名:iot-06z00c9p60cmk0g.mqtt.iothub.aliyuncs.com。4.通过域名,产品秘钥,设备名称,设备秘钥等信息,使智能电表连接至阿里云平台;2、首先新建产品,新建完成后,可以看到新建的产品;3、将新建的产品添加到设备中,可以查看设备的信息;

2025-05-29 17:25:02 679

原创 MQTT通信协议

4(协议名) + 1(协议版本) + 2(连接标志 + 保持连接时间) + 1(客户端 ID 长度 MSB) + 1(客户端 ID 长度 LSB) + 7(客户端 ID) = 16。:假设主题名为 “test/topic”(占 10 字节),有效载荷为 “hello mqtt”(占 11 字节),那么剩余长度为。(占 2 字节),订阅主题为 “test/topic”(占 10 字节),QoS 为 1(占 1 字节),那么剩余长度为。:设置为 “client01”,其长度为 7 字节,对应的十六进制表示为。

2025-05-26 18:02:59 609

原创 mqtt数据包举例

MQTT数据包由固定报头、可变报头和有效载荷三部分组成。以PUBLISH报文为例,固定报头标识消息类型和QoS等级,可变报头包含主题名和报文ID,有效载荷为实际数据。CONNECT报文则包含协议名、版本号和连接参数等。通过分析两个典型报文(发送"hello"消息和建立连接)的字节结构,展示了MQTT协议如何通过分层设计实现灵活通信。不同报文类型会根据功能需求调整各字段内容,但都遵循统一的三层结构框架。

2025-05-25 17:45:33 275

原创 HC32f460的定时器时间分析

非 100MHz,按上述公式重新计算即可。HC32f460的定时器时间分析。,具体时间需根据实际。

2025-05-23 17:00:08 172

原创 mqtt协议(cJSON格式举例)

【代码】mqtt协议(cJSON格式举例)

2025-05-23 16:56:24 433

原创 atoi函数,sprintf函数,memcmp函数,strchar函数的具体原型,功能,返回值;以及使用方法

将字符串参数`str`转换为整数(`int`类型)。参数列表与`printf()`类似,但输出结果存储在`str`中而非标准输出。在字符串`s`中查找字符`c`的首次出现位置(包括终止符`\0`)。参数`c`被转换为`char`类型进行比较。比较两个内存块`s1`和`s2`的前`n`个字节。- 若`s1`和`s2`的前`n`个字节相等,返回0。- 若按字典序`s1`小于`s2`,返回负值。- 若按字典序`s1`大于`s2`,返回正值。- 失败:若未找到`c`,返回`NULL`- 查找字符包括终止符`\0`

2025-05-14 18:38:06 268

原创 TCP协议中的IP地址/域名

我们知道了IP地址,那么再给大家介绍一下“域名”,域名是IP地址的一个的别名,因为IP地址不方便记忆,我们为了方便记忆和交流,用我们方便记忆的字符来表示IP地址,这就是域名。它是由代表一定意义的英文单词的缩写构成,如:www.pku.edu.cn 就是北京大学主机的域名。域名是由它所属的各级域的域名和分配给该主机的名字共同构成的。如www.pku.edu.cn 顶级域名为cn表示中国,二级域名为EDU 表示组织的属性是教育,三级域名为pku 表示北京大学,www 表示主机名称(别名)。

2025-05-13 14:59:57 385

原创 vs2022用于上位机开发,需要下载的工作负荷包括哪些

实际选择时需结合项目具体技术栈(如是否依赖C++底层库或纯.NET框架)进行灵活调整。若需开发基于MFC或ATL的C++上位机应用,或涉及硬件底层操作(如驱动交互)时需选择。适用于使用C#开发WinForm或WPF应用程序的场景,这是上位机开发的主流框架。◦ C++ MFC和ATL支持库(勾选后可构建传统Windows桌面应用)• 安装位置建议选择非系统盘(如D盘),避免占用过多C盘空间。• .NET工业通信库(如OPC UA SDK需单独安装)• .NET Core跨平台开发(用于兼容多环境部署)

2025-04-28 10:49:26 448

原创 电表中时控、负控、强控

时控、负控、强控构成了电表智能管理的核心逻辑,分别针对时间规划、安全防护、应急干预三大需求。实际应用中需根据场景选择组合模式(如宿舍侧重负控+时控,工商业用户注重负控+分时计费),并通过优先级设置确保系统可靠性。• 数据管理:记录跳闸事件、负荷超限次数、操作日志(如ADF400L支持30条事件存储)。• 检测阻性负载(如电炉、热得快)并跳闸,支持白名单设置(如允许饮水机)。• 总功率限制:当实际功率超过设定阈值(如企业最大负荷限制),自动断电。定义:通过预设用电时段自动控制电路通断,实现分时用电管理。

2025-04-24 14:52:33 482

原创 Modbus TCP协议介绍、原理解析与应用示例

Modbus协议作为一种经典的通信协议,因其简单、开放和易于实现的特点,被广泛应用于各种工业设备之间的数据传输。Modbus TCP(也称为Modbus TCP/IP)是Modbus协议的一个变种,基于TCP/IP协议栈在以太网上进行通信。它继承了Modbus协议的所有优点,同时利用以太网的高带宽和稳定性,提供更快速和可靠的数据传输。客户端发起请求,服务器响应请求。与传统的Modbus RTU相比,Modbus TCP消除了串行通信的限制,支持更大的网络规模和更高的数据传输速度,适用于现代工业自动化系统。

2025-04-23 15:33:25 1310

原创 常见基础电能

示例:正向500kWh,反向200kWh → 总量700kWh(用于分析电网负荷)。组合有功总电能、正向有功总电能,反向有功总电能、正向无功总电能,反向无功总电能等参数之间的关系。• 组合有功总量(正向+反向)反映用户与电网的总交互量,用于优化发电与用电平衡。• 定义:用户从电网消耗的电能(如家庭用电、工业设备用电),方向为电网→用户。• 定义:用户向电网回馈的电能(如光伏发电余电上网),方向为用户→电网。• 无功总电能:正向与反向无功的绝对值之和,反映系统无功交换总量。

2025-04-23 14:21:12 333

原创 DTL645协议解析【详细解析】

数据域:44 33 33 33 33 33(处理步骤:每个字节减掉0x33,分别为11 00 00 00 00 00,代表设备地址 00 00 00 00 00 11)地址域:11 00 00 00 00 00(6字节,低位在前,表示电表地址00 00 00 00 00 11)。地址域:11 00 00 00 00 00(6字节,低位在前,表示电表地址00 00 00 00 00 11)。地址域:11 00 00 00 00 00(设备地址 00 00 00 00 00 11)。

2025-04-23 10:07:33 853

原创 CMLINK APN 手动设置

以下是针对的cm.comcmlink.comcmlink234460300002。

2025-03-27 22:21:51 557

原创 电力系统中各参数的详细解释【智能电表】

将不同费率时段(费率1~4)的用电量按策略组合后的总电能,常用于分时计费或阶梯电价统计。

2025-03-09 21:35:06 1544

原创 STM32单片机时钟系统

在STM32中有3种不同的时钟源用来驱动系统时钟(SYSCL为什么提供这么多的时钟?节能!高速设备接高速时钟,低速设备接低速时钟,可以最大程度的达到节能效果。

2025-02-25 22:11:08 732

原创 【报数游戏】

题目要求在100个人围成一圈的情况下,进行报数,每次报到数字为M的那个人自动退出,直到剩下的人数少于M为止。我们需要找出最后剩下的人的编号。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。如果输入参数M小于等于1或者大于等于100,输出“ERROR!100个人围成一圈,每个人有一个编码,编号从1开始到100。否则按照原先的编号从小到大的顺序,以英文逗号分割输出编号。请问最后剩余的人在原先的编号为多少?题目描述的是一个经典的。输入一个整数参数 M。

2025-02-25 11:17:27 454

原创 TLV解码

编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value表示信元的值。现给定TLV格式编码的码流,以及需要解码的信元Tag,请输出该信元的Value。码流以某信元的Tag开头,Tag固定占一个字节,Length固定占两个字节,输入的第二行为一个字符串,表示待解码的16进制码流,字节之间用空格分隔。给定一个16进制的码流和要查找的Tag值,要求找到对应Tag的。需要解析的信元的Tag是31,

2025-02-24 18:57:16 633

原创 3、优先级翻转问题

是当高优先级任务因等待低优先级任务占用的资源(如互斥锁)被阻塞,而中优先级任务趁机执行,导致高优先级任务无法及时运行的调度异常。:存在三个任务,优先级从高到低为。:Task_L 和 Task_H 都需要访问某个共享资源(如互斥锁MutexTask_L 获取Mutex,开始操作共享资源。Task_H 就绪,尝试获取Mutex,但发现已被占用,因此被阻塞。此时,Task_M(中等优先级)开始运行,抢占 Task_L。Task_L 因被 Task_M 抢占,无法及时释放Mutex。

2025-02-23 22:30:59 394

原创 1、FreeRTOS基础知识

FreeRTOS 默认使用的,对的任务执行只有就绪态可转变成运行态,其他状态的任务想运行,必须先转变成就绪态。

2025-02-20 21:55:18 446

原创 【liunx发行版的数量】

给你一个 n * n 的矩阵 isConnected,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j 个发行版直接关联,而 isConnected[i][j] = 0 表示二者不直接相连。发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。所以存在两个发行版集,发行版集中发行版的数量分别是3和1,所以输出3。Mint(3)和Ubuntu(2)相关,返回最大的发行版集中发行版的数量。输出最大的发行版集中发行版的数量。第一行输入发行版的总数量N,

2025-02-19 22:32:11 96

原创 [IPV4地址转为整数]

现以字符串形式给出一个虚拟IPv4地址,限制第1小节的范围为1128,即每一节范围分别为(1128)#(0255)#(0255)#(0~255),要求每个IPv4地址只能对应到唯一的整数上。每个小节代表一个整数,范围从0到255,但题目中特别指出第一小节的范围应为1到128。128#0#255#255,转换为32位整数的结果为2147549183(0x8000FFFF)1#0#0#0,转换为32位整数的结果为16777216(0x01000000)输入一行,虚拟IPv4地址格式字符串。

2025-02-19 21:29:31 330

原创 【AI面板识别】

AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),由于AI识别误差,每次别到的指示灯位置可能有差异,以4个。

2025-02-18 22:25:15 511

原创 常见的排序算法:插入排序、选择排序、冒泡排序、快速排序

步骤:1.从第一个元素开始,该元素可以认为已经被排序2.取下一个元素tem,从已排序的元素序列从后往前扫描3.如果该元素大于tem,则将该元素移到下一位4.重复步骤3,直到找到已排序元素中小于等于tem的元素5.tem插入到该元素的后面,如果已排序所有元素都大于tem,则将tem插入到下标为0的位置6.重复步骤2~5C语言实现:2、选择排序步骤:在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直

2025-02-12 16:54:03 1460 2

原创 sizeof和strlen的区别

str字符数组使用"hello bit"初始化,最终也会将'\0'放置到数组中,因此数组中总共有10个元素。3.strlen是计算字符串长度的,遇到\0结束,返回不包括\0,即如果没有\0则会计算出随机值;sizeof(str):获取数组的总大小,10个元素,每个元素占1个字节,因此总共是10个字节。strlen(str): 获取字符串中有效字符的个数,不算'\0',因此总共9个有效字符。对于sizeof来说,使用时不加()也是正确的,这样也可以说明sizeof不是函数。

2025-02-10 20:09:34 1478

原创 C语言中常见关键字(static,extern)

/ 错误:无法访问file1.c中的static全局变量。// 静态全局变量,仅在file1.c中可见。(生命周期),使其从自动存储期(函数调用结束后销毁)变为静态存储期(程序运行期间一直存在)。当你有一个全局变量定义在一个文件中,并希望在另一个文件中访问它时,你可以使用。其他源文件无法访问该变量。:用于限制全局变量的作用域,避免其他文件访问,增强模块化。// 输出: Count: 1。:仅限于定义它的源文件(文件作用域)。:与程序的生命周期相同(静态存储期)。:与程序的生命周期相同(静态存储期)。

2025-02-10 16:15:10 1172

原创 I2C协议—读写EEPROM(24Cxx为例)

2.模拟I2C 是通过GPIO,软件模拟寄存器的工作方式,而硬件(固件)I2C是直接调用内部寄存器进行配置。可以看IIC写函数,看里面有木有调用现成的函数或者给某个寄存器赋值,如果有,则肯定是固件IIC功能,没有的话肯定是数据一个bit一个bit模拟发生送的,肯定用到了循环,则为模拟。可以看底层配置,比如IO口配置,如果配置了IO口的功能(IIC功能)那就是固件IIC,否则就是模拟。硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用。一般使用软件模拟IIC,,可移植性高。

2025-02-08 23:12:01 497

原创 嵌入式软件面试题

2、长按开关KEY1,要求控制LED灯闪烁(亮1S,灭1S),闪烁状态下,短按开关KEY1,LED灯关闭。1、短按开关KEY1,要求LED灯点亮,再次短按开关KEY1,要求LED灯关闭。1、计算K1,K2和K1,K2同时按下时AD端口的电压值和对应的AD值。// 如果LED正在闪烁,则关闭LED。3、实现短按K1控制LED灯亮(闪烁),再次短按K1控制LED灯灭;// 切换LED状态(慢闪、快闪、长亮之间顺序切换)其中 慢闪(亮1秒,灭1秒),快闪(亮0.5秒,灭0.5秒)。

2025-02-06 14:18:04 888

原创 C语言格式输出

f 输出,前面不指定小数位数的,就补足 6 位小数。前面指定小数位数的,按照指定小数位数输出。前面是整数的,就是没指定小数位,只指定了总宽度。10f 就输出总宽是 10(包括符号,小数点,数字),不够在前面补空格。不足的左边补空格,所以输出为: 123(这里前面有两个空格)。小数三位,整个数为 5 位(其中小数点也算一位),所以输出结果为:1.660。因为输出的部分有三位数,但是要求的有两位,所以原样输出为:123;小数 1 位,整体三位(此时要进行四舍五入),所以输出为:1.7。

2025-01-02 21:47:46 355

原创 翁凯C语言学习记录

链接: https://pan.baidu.com/s/1wn1rsTuoqOk8bFnQS7E4rg 提取码: pswx。通过网盘分享的文件:翁凯C语言详细笔记资源.pdf。

2025-01-02 19:45:36 287

原创 C语言(五子棋)带注释格式

【代码】C语言(五子棋)带注释格式。

2025-01-02 16:21:29 252

原创 C语言设计五子棋

【代码】C语言设计五子棋。

2025-01-01 21:24:36 143

原创 从头开始学习,做嵌入式真的太失败了

菜鸟C语言经典100例。

2024-12-31 15:45:15 212

原创 交流充电桩和直流充电桩

直流充电桩:由于直流充电桩具有较高的充电功率,通常在60kW以上,其他也有30kW、120kW、160kW、360kW、380kW等规格,超级充电桩甚至可以达到800kW,因此充电速度较快。这种方式的充电速度相对较慢,但对电池的损耗较小。交流充电桩:交流充电桩适合安装在小区、停车场等场所,满足日常充电需求,尤其适合夜间充电,因为用户可以在夜间充电,第二天使用车辆时电池已充满。1. 成本较低:由于交流充电桩的转换器简单,且主要的电力转换在车载充电器内部完成,所以相比直流充电桩,交流充电桩的造价更低。

2024-11-11 23:18:51 776

原创 USB电路设计

USB电路,在我们的平时的应用十分的广泛,常见的鼠标,键盘、显示屏的触摸功能等,对外的接口均使用的是USB接口。同样的,USB 3.0的5V电源也需要与板载的5V电源隔离,也需要使用电源开关,TPS2065CDGN允许通过的最大电流为1A,USB 3.0的最大电流为900mA,在此处同样适用。分析:当USB两端均对外提供5V电源,且电压存在微小的电压差,由于导线的电阻很小,通过欧姆定律可知:当电压为固定值,电阻无穷大时,电流将会趋近+∞。USB的USB_ID引脚,可用于识别Host和Device。

2024-11-08 10:08:24 1146

原创 CAN通信电路设计

在工业控制领域中,CAN通信的应用是非常广泛的,其通信的原理也比较简单,具体的过程:总线上的节点向其它节点发送数据时,传递的信息将会以报文的形式在总线上进行广播,总线上的每个节点在接收到数据之后,会根据过滤器来接收自己需要的报文。CAN通信是一种异步通信的方式,并不依赖于时钟进行通信,这种通信的方式对外部的电磁干扰是高度免疫的,主要是因为两条总线使用的是差分通信的方式,可以抑制共模干扰,且外部使用的是屏蔽双绞线,对于同一干扰源,对两条总线的干扰时相同的,故可抵消。为120Ω,目的是为了较少信号的反射。

2024-11-08 00:45:25 1066

原创 DCDC与LDO的区别

LDO 是一种线性稳压器,使用在其饱和区域内运行的晶体管或场效应管(FET),从应用的输入电压中减去超额的电压,产生经过调节的输出电压。相比LDO稳压器,DCDC的优点是输入电压范围宽、功耗低、效率高(可达90&以上)、支持降压、升压(Boost)、反相等变换,且支持大电流的输出,还支持输入输出端的隔离;LDO的应用设计简单,除了输入、输出端加上滤波电容,或者输出端增加并联电阻做假负载外,不需要其他外围器件;比如,输入电压Vin为12V,输出电压Vout为3.3V,计算得出效率η=27.5%,效率很低。

2024-11-06 23:14:55 1822

原创 LDO电路分析

• LDO 调整器的精度是指线路调整率( ΔV LR )、负载调整率( ΔV LDR )、参考电压漂移( ΔVo , ref )、误差放大器电压漂移( ΔVo , a ),外部采样电阻容差( ΔVo , r )和温度系数( ΔV TC )的所有影响。• Dropout 电压和静态电流必须足够小, LDO 才能有比较高的效率,另外,由于 LDO 调整器的功耗 受到输入-输出电压差的影响,所以输入-输出电压差必须减小,效率才能提高。LDO是线性电源的一种,它可以实现电源电压的转换,不过主要用在降压领域。

2024-11-06 23:00:37 1875

原创 基本开关电源(DCDC)电路分析

经过一定时间后,控制电路脉冲为低电平,开关管关断,此时没有电流流向电感,电感电流慢慢减少,这时电感L1两端产生右端正左端负的感应电动势阻碍电流下降,从而使D1正向偏置导通,于是L中的电流经D构成回路,电流值逐渐下降,L中储存的磁能转化为电能释放给负载R1。下图为Buck电路的最基本拓扑,从左至右包括电源,开关管Q1,续流二极管D1,储能电感L1,输出滤波电容C1及负载电阻R1。下图为Buck电路的最基本拓扑,从左至右包括电源,开关管Q1,储能电感L1,二极管D1,输出滤波电容C1及负载电阻R1。

2024-11-06 18:57:51 5790 4

逆变器协议派能逆变器协议 485协议

逆变器协议派能逆变器协议 485协议

2024-10-15

气体传感器规格书-立创商城

气体传感器规格书-立创商城

2024-01-15

CAN Test V2.53软件使用说明

CAN Test V2.53软件使用说明

2023-11-03

ch704200霍尔传感器规格书

ch704200霍尔传感器规格书

2023-10-13

嵌入式C与数据结构实战入门

嵌入式C与数据结构实战入门

2023-07-27

Modbus Slave和Modbus Poll的使用说明

Modbus Slave和Modbus Poll的使用说明

2023-07-24

嵌入式软件工程师面试宝典

嵌入式软件工程师面试宝典

2023-04-01

空空如也

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

TA关注的人

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