- 博客(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
原创 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
原创 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
原创 【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
原创 交流充电桩和直流充电桩
直流充电桩:由于直流充电桩具有较高的充电功率,通常在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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人