自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(662)
  • 资源 (17)
  • 收藏
  • 关注

原创 多传感器设计如何规划CPU的硬件

摘要:多传感器系统硬件设计需针对不同通讯协议优化CPU配置。串口传感器建议采用双缓存、提高中断优先级或DMA传输;I2C推荐硬件实现,SPI可用DMA提升效率;开关输入宜用扫描方式,脉冲输出采用定时器捕获;模拟量需ADC配合DMA和滤波处理。整体设计应基于RTOS系统,通过合理中断优先级配置和DMA应用来保证数据完整性,提升系统响应速度和用户体验。

2026-03-17 11:15:58 236 1

原创 CPU复位后指定相关变量不被初始化

该应用告诉我们如何配置KEIL,实现全局变量在CPU复位后无需初始化,保持其值在复位前后不变。

2026-03-04 16:03:12 51

原创 如何解决EEPROM读写错误

发送“启动条件”后,接着SDA发送9个1,然后在“第10个时钟期间”发送“启动条件”产生,由于SDA一直为高电平,所以在第10个时钟期间又发送一个1,合计10个1,最后在“第11个时钟期间”发送“停止条件”,EEPROM就会执行复位。由于硬件I2C发送“读器件地址0xFF”后,若EEPROM不应答,则立即在I2C总线上产生一个“停止条件”,导致无法实现EEPROM复位序列,所以只能用软件模拟I2C,去复位EEPROM。EEPROM是有这个功能,但是考虑到编程时间,过快的频繁写入数据,是有问题的。

2026-03-04 16:00:54 246

原创 语法:#use rs232(options)

#USE RS232是PICCCS编译器中的C语言语法。

2026-03-04 15:59:22 173

原创 语法: memset(destination, value, n);

memset(destination, value, n);

2026-03-04 15:58:19 37

原创 一种双温湿传感器数据记录的保存方法

一种双温湿传感器数据记录的保存方法

2026-03-04 15:50:13 356

原创 学习TCP/IP的第12步:UDP通讯

本文介绍了UDP协议的基本原理及其在嵌入式系统中的应用实现。UDP作为一种无连接的传输层协议,具有传输效率高、延时小的特点,适用于视频聊天等实时应用场景。文章详细阐述了UDP数据包的结构设计、相关宏定义以及核心操作函数,包括数据包发送函数ENC28J60_Send_UDP_data_packet和客户端发送函数UDP_Client_Send_Data_To_Server。通过STM32平台结合ENC28J60以太网控制器,实现了UDP数据包的收发功能,并提供了局域网通信测试案例,演示了如何通过不同端口发送&

2026-03-03 15:19:25 1045

原创 学习TCP/IP的第11步:HTTP客户端访问httpbin.org服务器

本文介绍了基于ENC28J60以太网模块的HTTP客户端实现,用于访问httpbin.org服务器。主要内容包括:1. 定义了HTTP请求相关的宏和数据结构,包括服务器IP、端口号、HTTP协议版本等常量;2. 实现了TCP/IP协议栈的基础功能,包括ARP、ICMP和TCP数据包处理;3. 详细说明了HTTP客户端功能,包括GET和POST请求的实现方法;4. 提供了完整的函数实现,如Httpbin_org_ip()用于获取服务器IP,Httpbin_GET()和Httpbin_Post()分别处理GET

2026-03-02 09:51:22 868

原创 学习TCP/IP的第10步:TCP访问外网

TCP访问外网的办法。

2026-02-09 16:10:39 1040 1

原创 学习TCP/IP的第9步:客户端和服务端综合测试

本文详细介绍了基于ENC28J60芯片的软件TCP/IP协议栈实现,重点分析了ARP、ICMP和TCP数据包的结构与处理流程。文章首先阐述了选择无硬件协议栈芯片的优势,便于深入理解网络协议底层原理。随后系统性地讲解了以太网数据结构定义、网络信息管理、定时器机制等基础组件,并详细剖析了ARP地址解析、ICMP Ping通信和TCP连接的实现方法。通过实际测试案例展示了各协议层的交互过程,包括ARP请求/应答、ICMP回显请求/响应以及TCP三次握手等关键网络行为。文章特别强调了TCP状态机管理、数据校验和超时

2026-02-03 10:44:53 764

原创 学习TCP/IP的第8步:紧急数据

本文介绍了TCP协议中的紧急数据传输机制。紧急数据是用户数据流中的特殊字节,通过紧急指针定位,最多只能传输1个字节。文章详细解析了TCP/IPv4数据包结构,包括MAC地址、IP头部、TCP头部等字段定义。重点阐述了紧急数据的处理流程:发送端通过设置URG标志位和紧急指针将紧急数据与用户数据一起发送;接收端根据紧急指针提取紧急数据。文中还提供了连接表结构定义、数据包发送函数实现以及序列号更新机制,展示了如何在实际代码中实现TCP紧急数据传输功能。

2026-01-27 10:06:30 811

原创 学习TCP/IP的第7步:设计TCPIP程序要注意的事项

TCP/IP程序设计关键要点:1.数据交付基于端口号;2.连接建立需三次握手(SYN-SYN/ACK-ACK);3.连接关闭需四次挥手,主动方需等待TIME_WAIT状态(默认60秒);4.缓冲区满时需通过窗口机制处理拥塞;5.RST用于异常时重建连接;6.URG实现紧急数据处理。特别注意端口占用问题和连接状态管理,建议服务器使用固定端口,客户端灵活更换端口。

2026-01-26 09:52:07 423

原创 学习TCP/IP的第6步:断开连接

本文介绍了TCP通讯中关闭连接的实现方法,主要涉及FIN和RST两种关闭方式。通过ENC28J60_Send_FIN_ACK_data_packet()函数发送FIN+ACK数据包实现正常关闭,使用ENC28J60_Send_RST_data_packet()函数发送RST数据包实现强制关闭。文章详细分析了TCP数据包的结构和校验和计算方法,包括IP头部和TCP头部的各个字段设置。同时展示了TCP状态转换流程和连接管理机制,包括连接表更新、序列号确认等核心功能。最后通过主程序演示了TCP客户端建立连接、发送

2026-01-23 15:17:07 569

原创 学习TCP/IP的第5步:传输数据

本文介绍了TCP通讯中建立连接、传输数据和关闭连接三个关键过程。重点分析了PSH数据包的发送函数实现,包括数据包结构构建、校验和计算以及用户数据填充等核心步骤。通过STM32与ENC28J60以太网模块的配合,展示了如何在嵌入式系统中实现TCP协议栈功能,包括连接管理、数据收发和状态维护。测试结果验证了TCP客户端与服务器端成功建立连接并完成数据传输的功能实现。

2026-01-23 14:33:54 627

原创 学习TCP/IP的第4步:重点掌握TCP序列号和确认号

TCP通信通过序列号和确认号机制确保数据传输的可靠性。建立连接需三次握手:客户端发送SYN包(含随机初始序列号),服务器回复SYN+ACK(含随机序列号及客户端序列号+1),客户端最后发送ACK确认。数据传输时,序列号随数据长度递增,确认号保持对端最新序列号+1。关闭连接采用四次挥手:双方分别发送FIN包并确认。RST包可强制立即终止连接。整个过程通过序列号和确认号的严格匹配实现数据有序传输和连接状态同步。

2026-01-23 13:45:12 975 1

原创 学习TCP/IP的第3步:和SYN相关的数据包

摘要 本文详细介绍了基于ENC28J60以太网芯片的TCP/IP协议栈学习与实践。通过分析TCP状态转换、数据包结构及实现过程,重点阐述了如何在没有硬件TCP/IP栈的ENC28J60芯片上实现网络通信功能。内容包括: TCP连接状态管理(Closed→SYN-SENT→SYN-RECEIVED→ESTABLISHED) 关键数据结构定义(以太网帧、IP头、TCP头等) 核心功能实现: ARP协议处理(请求/应答) ICMP协议实现(Ping功能) TCP连接建立(SYN/SYN-ACK/ACK三次握手)

2026-01-21 14:23:12 766 1

原创 学习TCP/IP的第2步:ICMP数据包

本文介绍了使用ENC28J60芯片学习TCP/IP协议的方法,重点讲解了ICMP数据包的实现。作者建议选择没有硬件TCP/IP栈的ENC28J60芯片,以便更深入地理解数据包结构。文中详细解析了ICMP协议的工作原理,包括Ping命令使用的回显请求和应答机制,并提供了具体的代码实现。在实现过程中,需要注意关闭计算机防火墙以确保ICMP通讯正常。文章包含完整的ICMP驱动代码和测试程序,展示了如何通过ENC28J60与计算机进行Ping通讯,包括数据包收发、校验和计算等关键步骤。

2026-01-08 12:26:29 700

原创 学习TCP/IP的第1步:ARP数据包

学习TCP/IP协议栈应从底层ARP协议入手,使用ENC28J60等无硬件协议栈的芯片更利于深入理解。本文详细介绍了ARP数据包结构及实现方法,包括: 定义网络信息结构体,包含MAC/IP/子网掩码/网关等参数 实现ARP请求发送函数(已知/未知目标MAC两种场景) 处理ARP请求接收与应答 设计ARP缓存表管理机制,包含超时更新策略 通过完整实现ARP协议栈,可深入理解以太网数据帧结构和网络通信基本原理,为后续学习TCP/IP协议打下基础。

2026-01-07 11:36:44 760

原创 重点学习三极管放大电路设计

本文系统介绍了三极管的基本原理与应用。主要内容包括:1)三极管类型(NPN/PNP)及电路符号识别;2)三个工作区(截止、放大、饱和)的偏置条件;3)关键参数符号及含义(如UBE(on)、VCEO、β值等);4)直流通路分析与静态工作点计算;5)等效电路模型及输入/输出电阻计算;6)共射极放大电路设计,重点分析发射极电阻RE的作用(稳定工作点、负反馈等),并提供具体参数计算方法。文章通过公式推导和实例计算,详细说明了三极管在放大电路中的应用要点。

2025-12-16 17:18:32 1758

原创 uip之TCP服务器

本文基于ENC28J60以太网控制器实现了一个TCP服务器系统,主要包括以下内容: 系统架构 硬件平台:STM32F10x + ENC28J60 软件组件:uIP协议栈、TCP服务器应用、驱动程序 核心功能实现 TCP服务器监听5000端口 支持8个并发TCP连接 实现数据收发和状态管理 提供连接建立、数据传输、超时处理等回调函数 关键技术点 网络初始化配置(IP、MAC、子网掩码等) uIP协议栈移植和优化 数据缓冲区管理 ARP协议处理 定时器管理(500ms轮询) 性能特点 支持最大1518字节以太网

2025-12-11 16:27:21 1124

原创 电池防反接电路

判断电动车充电器好坏需注意:1.需使用Y型螺丝刀打开塑料外壳;2.测量输出电压需外接电池或75Ω大功率电阻(因防反接电路需电池供电才能工作);3.充电器采用DB151晶闸管(触发电流2-15mA)和DB3W双向触发二极管(转折电压28-36V)构成的防反接保护电路,确保电池正接时才能导通充电。测试70V输出时,必须满足上述条件才能正常测量电压。

2025-12-10 15:33:01 593

原创 深度学习uip中的“psock.c和psock.h”

本文对uIP协议栈中的psock.c和psock.h文件进行了深度解析和重构,主要改进包括: 重构了protothread协程实现,通过#define宏控制是否替换原有PT协程机制,便于调试和原理分析。新增了状态机变量STATE_NONE等6种状态定义,优化了协程状态管理。 详细注释了关键数据结构: psock_buf结构体管理输入缓冲区 psock结构体包含双PT协程状态、数据指针和缓冲区信息 新增httpd_state结构体管理HTTP连接状态 重点分析了核心功能函数: 缓冲区操作函数(buf_setu

2025-12-06 19:00:36 640

原创 深度学习uip中“uip_arp.c“

本文介绍了一个经过修改的ARP协议实现文件uip_arp.c,主要功能包括: 初始化ARP表(uip_arp_init) 定时维护ARP表,清理超时条目(uip_arp_timer) 处理接收到的ARP请求和应答(uip_arp_arpin) 处理IP数据包发送时的ARP查询(uip_arp_out) 从IP数据包中更新ARP表(uip_arp_ipin) 该实现包含ARP表管理、请求/应答处理、超时机制等功能,支持以太网和IPv4协议,使用静态ARP表存储IP-MAC映射关系。通过定时器定期清理超时条目,

2025-12-05 10:10:26 657

原创 PT协程分析和应用

本文分析了PT协程的非阻塞特性及其实现原理。PT协程通过switch-case语句和状态变量实现协程调度,表面看似阻塞的代码实际上是基于条件判断的非阻塞执行。文章详细解析了PT协程的核心机制,包括lc-switch.h和pt.h中的关键宏定义,展示了如何通过PT_BEGIN、PT_WAIT_UNTIL等宏实现协程的挂起和恢复。通过一个STM32应用实例,演示了主协程调度子协程的过程,包括定时器同步和时间判断。分析表明,PT协程本质上是单任务的,适合用于学习协程的基本概念和实现原理。

2025-12-03 16:38:34 959

原创 “do{}while(0)”的作用

本文分析了do{}while(0)在C/C++编程中的三种典型应用场景:1)作为代码分块工具,允许在块内定义局部变量;2)用于宏定义,避免宏替换时因缺少大括号导致的逻辑错误;3)替代goto语句实现流程控制,提高代码可读性。在Linux内核和开源代码中,这种结构既能确保宏替换后的语法正确性,又能保持代码整洁,是解决复杂宏定义和流程控制问题的有效方案。通过实例对比展示了do{}while(0)相比直接使用大括号或goto语句的优势。

2025-12-01 14:58:04 487

原创 学习“指针函数,函数指针,指针数组,数组指针”

本文介绍了C语言中指针函数、函数指针、指针数组和数组指针的概念及用法。指针函数是返回指针的函数,函数指针是指向函数的指针变量。指针数组是元素为指针的数组,数组指针则指向一个数组缓冲区。通过typedef为函数指针类型创建别名,可以简化声明。文中提供了完整的测试代码,展示了如何使用结构体数组存储不同函数指针,并通过名称匹配调用相应函数。测试结果表明,系统能正确识别函数名并执行对应的函数操作,未匹配时执行默认函数。该实现方法可用于构建灵活的基于名称的函数调用机制。

2025-11-28 16:59:41 446

原创 以太网HTTP数据包格式分析

本文详细分析了以太网HTTP数据包结构,包括ARP和TCP/IP协议的数据包格式。主要内容包括:1. ARP数据包结构分析,包含以太网头部和ARP头部定义;2. TCP/IP数据包结构解析,涵盖以太网首部、IP头部和TCP头部;3. 通过串口跟踪展示了完整的HTTP通信过程,包括ARP请求/应答、TCP三次握手、HTTP请求/响应等交互数据;4. 提供了校验和计算程序实现;5. 使用表格形式详细解析了ARP和HTTP数据包中各字段的含义和数值。文章通过实际通信数据分析,深入展示了网络协议的工作机制和数据包格

2025-11-24 18:14:09 1261 4

原创 “stdlib.h“中的函数

本文详细分析了C标准库<stdlib.h>中的数值转换和随机数生成函数。主要介绍了三类函数:1)基本转换函数(atoi、atol、atof)将字符串转换为数值;2)高级转换函数(strtol、strtoul、strtod)支持进制转换并返回剩余字符串指针;3)随机数函数(rand、srand)及其实现原理。文章通过代码示例展示了各函数的使用方法,特别比较了在不同系统架构下的行为差异,如32位与16位系统中atoi/atol的区别。此外,还介绍了绝对值函数(abs/labs)和除法函数(div/l

2025-11-22 11:42:58 630

原创 “string.h“中的函数

摘要:本文详细介绍了C语言标准库"string.h"中的常用字符串处理函数,包括字符串长度计算(strlen)、内存设置(memset)、字符串复制(strcpy/strncpy/memcpy/memmove)、字符串比较(strcmp/memcmp)、字符串搜索(strchr/strstr)等函数的使用方法和注意事项。通过代码示例演示了各函数的正确用法,并特别强调了内存溢出的风险及防范措施。文章还包含了自定义字符串处理函数(strnchr/strnstr)的实现,为开发者提供了全面的字

2025-11-22 11:38:20 671

原创 C语言控制语句

本文介绍了C语言中的控制语句,主要包括选择结构和循环结构。选择结构部分详细讲解了if语句(单分支、双分支和多分支)和switch语句的语法格式及应用实例,并比较了两者的使用场景。循环结构部分阐述了while、do-while和for三种循环语句的语法特点,通过具体代码演示了不同循环方式的使用方法。此外还介绍了break、continue、goto等流程控制语句的功能特性,最后概括了顺序结构、选择结构和循环结构三大基本程序结构的特点。全文通过丰富的代码示例,系统性地讲解了C语言流程控制语句的语法规则和实际应用

2025-11-22 11:33:30 431

原创 C语言中的构造类型

本文介绍了C语言中的构造数据类型,包括数组、结构体、联合体和枚举。数组是相同数据类型的连续存储元素集合,分为一维和二维数组,可通过下标或指针访问。结构体允许组合不同数据类型成员,需注意内存对齐问题。联合体让成员共享同一内存空间,适合处理同一数据的多种表示方式。枚举用于定义整型常量集合,可指定或使用默认值。文章详细说明了这些类型的声明格式、内存分配规则和访问方法,并强调了使用时的注意事项,如数组越界和结构体内存对齐等问题。这些构造类型大大增强了C语言处理复杂数据的能力。

2025-11-22 11:31:21 963

原创 字符和字符串

本文介绍了C语言中字符和字符串的基础知识。主要内容包括:字符表示方法(ASCII码1字节,汉字GBK编码2字节)、常用转义字符及其含义、ASCII字符表(需重点记忆0-127字符)、字符串定义(以'\0'结尾的字符序列)。详细讲解了printf函数的格式化输出:整数(%d/%i)、无符号数(%u)、十六进制(%x/X)、八进制(%o)、浮点数(%f/F)、科学计数法(%e/E)、字符(%c)、字符串(%s)等多种格式符的使用方法,并配有具体示例说明不同格式控制符(如宽度、补零等)的输出效果。

2025-11-22 11:26:25 371

原创 STM32单片机C语言运算符

C语言运算符详解:本文系统介绍了C语言中的各类运算符,包括算术运算符(+、-、*、/、%等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!)、位运算符(&、|、~等)、赋值运算符(=、+=等)以及特殊运算符(sizeof、指针运算符等)。通过代码示例详细演示了每种运算符的使用方法,并提供了运算符优先级表。特别强调了自增/自减运算符的前后置区别("++在前先加,++在后先用后加")以及强制类型转换等重要概念。文章还涵盖了条件运算符、逗号运算符

2025-11-22 11:24:40 823

原创 STM32单片机函数

本文介绍了C语言中函数的基本概念和使用方法。首先通过数学中的线性函数类比说明C语言函数的概念,然后详细讲解了函数的声明格式(无参数无返回值、带参数无返回值、带参数带返回值等)。接着阐述了void关键字在函数中的应用,包括表示无返回值和避免未使用变量警告。文章还详细说明了return语句的用法、函数参数传递方式(数值传递和指针传递),并介绍了函数指针的概念与使用方法。最后简要提及了表达式语句的分类。全文通过具体代码示例帮助理解函数在C语言中的实际应用。

2025-11-22 11:19:29 573

原创 STM32单片机指针变量

本文介绍了指针变量的基本概念和应用。指针变量存储另一个变量的内存地址,在MDK-ARM编译器中固定占用4字节空间。文章详细说明了一维指针和二维指针的声明格式及使用方法,包括通过指针间接修改变量值的操作。重点阐述了void和void**这两种通用指针类型的特点:void可指向任何数据类型,void**则指向void*指针。在使用这些通用指针时,需要通过类型转换才能正确访问数据。通过多个具体示例,展示了如何声明、初始化和操作不同类型的指针变量。

2025-11-22 11:16:34 406

原创 STM32单片机变量

本文介绍了C语言中变量的基本概念和使用规范。主要内容包括:1)变量命名规则要求具有可读性,以字母或下划线开头;2)变量声明格式及访问方式,可通过变量名直接访问或获取地址;3)变量类型分为局部变量和全局变量,详细说明了auto、static、extern等修饰符的使用场景;4)介绍了const和volatile修饰变量的特性;5)通过示例说明了同名全局变量和局部变量的处理方式。文章还提供了各种数据类型变量的声明示例,包括整型、浮点型和布尔型等。

2025-11-22 11:14:50 365

原创 STM32单片机在KEIL中的数据类型

本文详细介绍了MDK-ARM编译器支持的数据类型及其特性。主要内容包括:1)基本数据类型(char、int、float等)的位数、字节数和取值范围;2)通过typedef定义的类型别名(如int8_t、uint32_t等);3)单精度和双精度浮点数的IEEE 754存储格式解析;4)编译器特殊定义(如__IO、__I等)及STM32专用数据类型;5)各类型数值范围的定义(INT32_MAX等)。文章强调要掌握这些数据类型的关键特性,建议使用编译器默认配置,并提供了浮点数存储格式的详细计算示例。

2025-11-22 11:11:35 884

原创 TCP数据包格式分析

摘要:本文详细解析了TCP数据包的结构组成和处理流程。TCP数据包由以太网首部(14字节,含MAC地址)、IP头部(20字节)、TCP头部(20-24字节)和用户数据四部分组成。文章通过代码示例展示了以太网首部、IP头部和TCP头部的数据结构定义,并解析了一个实际的TCP数据包实例。此外,还介绍了校验和计算方法(包括IP校验和、TCP校验和)、数据包跟踪处理流程(包括ARP和TCP数据包识别),以及数据收发函数实现。最后给出了一个包含HTML内容的TCP数据包实际案例解析。

2025-11-20 10:59:50 1447 1

原创 以太网ARP数据包格式分析

本文分析了以太网ARP数据包的格式和工作机制。首先介绍了以太网头部结构,包含目的/源MAC地址和协议类型字段。详细解析了ARP数据包结构,包括硬件/协议类型、地址长度、操作码及通信双方的MAC/IP地址。通过实例展示了计算机和ENC28J60设备之间ARP请求与应答的完整交互过程,包括数据包各字段的具体数值。最后提供了ENC28J60发送ARP请求的程序实现代码。分析表明,ARP协议通过广播请求和单播应答的方式实现IP地址到MAC地址的解析,为网络层通信提供底层支持。

2025-11-19 16:20:08 789

原创 如何方便打开或关闭“串口输出的调试信息”

摘要 本文提出了一种通过宏定义来控制串口调试信息输出的方法。通过定义DEBUG_PRINTF宏代替直接使用printf函数,在开发阶段可将宏定义为printf(VA_ARGS)输出调试信息,产品发布时只需将宏定义为空即可关闭所有调试输出。文中详细展示了宏定义方法,并提供了完整的STM32 USART1串口初始化及配置代码,以及包含调试信息输出的主程序示例。这种方法实现了调试信息的灵活控制,避免了在最终产品中手动删除大量printf语句的繁琐工作。

2025-11-19 14:04:01 508

【网络通信硬件】RJ45磁性模块技术规格:10/100BASE-T单端口连接器设计与波峰焊工艺参数

内容概要:本文档为元册科技股份有限公司生产的RJ45插座(型号:13F-60FGYDPNW2NL)的技术规格说明书,详细介绍了该网络接口插座的机械尺寸、电气特性、材料构成、环境适应性、包装方式及焊接工艺建议。产品符合RoHS标准,适用于10/100BASE-T单端口应用,具备良好的信号完整性指标,如插入损耗、回波损耗、串扰和共模抑制比,并支持波峰焊工艺,峰值温度建议为250±10℃,持续时间不超过5秒。; 适合人群:电子硬件工程师、PCB设计人员、生产制造技术人员以及负责网络接口选型与测试的相关技术人员;具备基本的电子元器件知识和电路设计背景者更佳; 使用场景及目标:①用于网络设备中RJ45接口的选型与设计参考;②指导PCB布局布线及波峰焊工艺参数设置;③确保产品在-40℃至+85℃环境下稳定工作,满足工业级温度要求; 阅读建议:本资料技术性强,建议结合实际产品设计需求查阅关键参数,重点关注电气性能指标、材料规格及焊接条件,以确保可靠性和兼容性。

2025-09-16

【电子设计自动化】AD16原理图和PCB设计入门教程:涵盖工作空间创建、项目管理、原理图与PCB绘制、元件库建立及布线规则设置等基础操作指导

内容概要:本文档《AD16原理图和PCB设计入门教程.pdf》详细介绍了Altium Designer 16(AD16)从创建新工作空间到完成PCB设计的全流程。内容包括:创建和管理新工作空间与项目、创建和编辑原理图及PCB文件、创建和管理元件库、绘制原理图和PCB元件、设置布线规则、执行DRC检测、解决常见问题等。文档还涵盖了如何进行元件排序、网络表装载、批量放置过孔、3D封装元件制作以及解决一些软件兼容性问题的具体步骤。每个操作都有详细的步骤说明和截图辅助理解。 适用人群:适合具有基本电子电路知识和PCB设计经验的技术人员,特别是初学者或希望深入掌握AD16使用技巧的工程师。 使用场景及目标:①帮助用户快速上手AD16,掌握从原理图到PCB设计的完整流程;②提高工作效率,减少设计错误,确保设计质量;③解决实际操作过程中遇到的各种问题,如元件库管理、布线规则设置、DRC检测等。 其他说明:文档提供了大量实用的操作细节和技巧,如元件库的创建与维护、布线规则的精细调整等,有助于用户更好地理解和应用AD16的功能。同时,针对常见的软件兼容性和操作难题,给出了具体的解决方案。

2025-08-14

物联网通信中MQTT协议的详细解析及其报文结构实现

内容概要:本文详细介绍了MQTT通讯协议的架构及其主要控制报文的格式和功能。MQTT协议通过轻量级的消息传输机制,支持客户端与服务端之间的高效通信。文章首先概述了客户端和服务端的角色,接着深入探讨了MQTT控制报文的结构,包括固定报头、可变报头和有效载荷。重点描述了CONNECT、CONNACK、PUBLISH、PUBACK、SUBSCRIBE、SUBACK、UNSUBSCRIBE、UNSUBACK、PINGREQ、PINGRESP以及DISCONNECT等关键报文的功能和格式。此外,还特别强调了不同服务质量(QoS)级别下的消息传递流程。 适合人群:具备一定网络编程基础的技术人员,特别是从事物联网开发或对轻量级消息队列协议感兴趣的开发者。 使用场景及目标:①理解MQTT协议的工作原理及其在网络应用中的优势;②掌握MQTT协议中各种控制报文的具体格式和用途;③学习如何根据不同的QoS级别设计可靠的消息传递机制;④为实际项目中选择合适的MQTT实现提供理论依据。 阅读建议:由于MQTT协议涉及较多底层通信细节,建议读者结合实际应用场景逐步理解各控制报文的作用,并通过实验加深印象。

2025-07-29

MQTT通信协议-MQTT-3.1.1-CN

MQTT通信协议MQTT-3.1.1-CN主要讲解:MQTT控制报文格式,CONNECT – 连接服务端,CONNACK – 确认连接请求,PUBLISH – 发布消息,PUBACK –发布确认,PUBREC – 发布收到(QoS 2,第一步),PUBREL – 发布释放(QoS 2,第二步),PUBCOMP – 发布完成(QoS 2,第三步),SUBSCRIBE - 订阅主题,SUBACK – 订阅确认,UNSUBSCRIBE –取消订阅,UNSUBACK – 取消订阅确认,PINGREQ – 心跳请求,PINGRESP – 心跳响应,DISCONNECT –断开连接等。

2025-07-15

MQTT开发包开源代码程序

MQTTPacket是ioLibrary库的一部分,是一个完整的MQTT开发包程序。在W5500的芯片上验证。

2025-07-15

5-W5500-DHCPClient

本文介绍了如何通过STM32F10x与W5500以太网模块进行通信的代码实现。首先,通过SPI接口初始化W5500的硬件配置,包括SPI引脚、复位引脚和中断引脚的设置。接着,注册SPI的片选、读写函数,并通过DHCP协议动态获取IP地址。代码中还实现了定时器中断,用于处理DHCP超时等任务。最后,通过串口输出网络配置信息,如MAC地址、IP地址、子网掩码、网关和DNS服务器。整个流程展示了如何从硬件初始化到网络配置的完整步骤,适用于嵌入式系统中以太网通信的开发。

2025-05-20

STM32F1-W5500-TCP客户端接收中断

STM32F103通过SPI和W5500通讯,使用端口0建立TCP客户端。可以通过INT引脚中断,提示有新数据输入。

2025-05-17

TCP和UDP测试工具

TCP和UDP测试工具,支持TCP客户端,TCP服务器端,UDP客户端和UDP服务器端。

2025-05-14

如何设计IAP和APP-2025

《如何设计IAP和APP_2025》主要介绍如何在STM32F103上设计IAP和APP程序,以及如何烧录IAP代码和APP代码。通过演示,让大家容易上手设计。

2025-03-20

PT100温度计算及其电路图

PT100温度计算,采用ADC转换读到PT100的电阻值,然后采用求根法计算温度,并附上EXCEL计算表格,以及电路图。

2024-07-23

SIM800-Series-AT-Command-Manual-V1.07

SIM800 Series AT Command Manual V1.07是SIM800模块的AT命令说明书。这是曾经销售很火爆的一款2G模块,支持GSM电话,短信,彩信,GPRS,GPS和蓝牙,等通讯,功能十分强悍,在2G通讯领域,独占头角。

2024-07-17

汉字内码查看器.exe

汉字内码查看器,输入汉字可以查询其汉字内码;输入汉字内码可以查看到是什么汉字。

2024-07-17

STM32F030F4工程模板-标准库

STM32F030F4工程模板,采用标准库实现。

2024-07-09

STM32F407-标准库工程模板

STM32F407工程模板,采用标准库实现

2024-07-09

STM32F042工程模板-HAL库

STM32F042工程模板,使用HAL库。

2024-07-09

STM32F042工程模板-标准库

STM32F042工程模板,使用标准库。

2024-07-09

基于正点原子的STM32FMP157开发板的FlashLayout

基于正点原子的STM32FMP157开发板的FlashLayout,使用STM32CubeProgrammer打开,用来指定文件烧录FLASH中的位置,并指定烧录的哪些文件。Window文件:FlashLayout.tsv,有的人命名为tf-a.tsv,但不影响烧录。

2024-06-24

基于正点原子的STM32FMP157开发板的Uboot移植

基于正点原子的STM32FMP157开发板的Uboot移植,Ubuntu下的Linux压缩包:u-boot-stm32mp-2024.02.tar.bz2

2024-06-24

基于正点原子的STM32FMP157开发板的TF-A移植

基于正点原子的STM32FMP157开发板的TF-A移植,Ubuntu下的Linux压缩包:tf-a-stm32mp-2024.2.tar.bz2

2024-06-24

基于正点原子的STM32FMP157开发板的busybox根文件系统移植

基于正点原子的STM32FMP157开发板的busybox根文件系统移植,Ubuntu下的Linux压缩包:busybox2024-02-1.32.0.tar.bz2

2024-06-24

以太网ARP-ICMP-TCP-HTTP-UDP通讯【嵌入式网络通信】基于ENC28J60的RP-ICMP-TCP-HTTP-UDP协议栈实现:STM32平台多协议工业控制通信系统开发

内容概要:本文详细介绍了以太网通信中ARP、ICMP、TCP、HTTP和UDP协议的数据包结构及其在嵌入式系统中的实现方法,重点围绕ENC28J60网卡驱动开发展开。文档涵盖了各协议的数据结构定义、校验和计算、定时器管理、数据收发流程以及实际应用案例,如通过TCP连接访问httpbin.org服务器完成HTTP GET/POST请求,并实现了完整的三次握手与四次挥手过程。此外,文中还提供了ARP表和连接表的维护机制,确保网络通信的稳定性和可靠性。 适合人群:具备一定嵌入式开发基础,熟悉C语言和网络基础知识,从事物联网、单片机或网络通信相关工作的1-3年研发人员。 使用场景及目标:① 学习底层网络协议栈的实现原理,掌握ARP地址解析、ICMP Ping测试、TCP连接管理等核心技术;② 实现基于ENC28J60芯片的以太网通信模块,应用于工业控制、智能设备联网等场景;③ 理解并实践HTTP客户端功能,实现设备与云平台的数据交互。 阅读建议:本文技术细节丰富,建议结合代码逐段分析,重点关注数据包构造、校验和计算、状态机转换等关键环节,并在实际硬件平台上调试运行,加深对网络协议工作机制的理解。

2026-03-03

以太网HTTP客户端访问httpbin-org-2026嵌入式系统以太网通信实现:基于ENC28J60的HTTP客户端设计-访问httpbin.org服务的技术方案

以太网HTTP客户端访问“http://httpbin.org”程序主要分为几个部分,如下: 1、以太网数据结构及相关宏定义 2、程序用到的变量和相关宏 3、刷新“连接表和ARP表”的定时器 4、校验和计算及判断 5、ENC28J60_Interface.c 6、ARP数据包 7、ICMP数据包 8、TCP数据包 9、HTTP客户端访问httpbin.org服务器

2026-03-02

网络通信基于ENC28J60的TCP/IP协议栈设计:以太网内外网访问程序开发与实现

内容概要:本文详细介绍了基于ENC28J60芯片实现以太网TCP协议访问内网与外网的程序设计方法,重点剖析了TCP/IP协议栈的核心数据结构与通信流程。文章从底层出发,构建了ARP、ICMP、TCP等协议的数据包结构体,设计了连接表和ARP表的管理机制,并实现了TCP三次握手、四次挥手、数据传输及错误处理等完整通信过程。特别阐述了内外网通信的区别:内网通信通过ARP直接解析目标MAC地址,而外网通信则需将数据包发送至网关路由器,由其负责跨网络转发。文中还提供了完整的C语言实现代码框架,涵盖数据包构造、校验和计算、定时器管理以及主控流程,适用于裸机环境下的嵌入式网络开发。; 适合人群:具备C语言和计算机网络基础知识,从事嵌入式系统开发,特别是物联网设备联网功能开发的工程师和技术人员。; 使用场景及目标:① 学习和掌握TCP/IP协议栈在无操作系统环境下(裸机)的手动实现原理;② 理解ARP协议在局域网寻址中的作用以及内外网通信路径的差异;③ 实践如何在资源受限的嵌入式平台上(如STM32)利用ENC28J60等SPI接口网卡芯片实现网络通信;④ 为开发具有网络功能的工业控制、智能硬件等产品提供技术参考。; 阅读建议:阅读本文需结合提供的完整代码实例,重点关注数据结构定义、TCP状态机转换、数据包收发流程以及内外网通信的地址处理逻辑。建议在实际硬件平台上搭建实验环境,通过抓包工具(如Wireshark)对比分析程序发出的数据包,以加深对TCP/IP协议细节的理解。

2026-02-09

网络通信基于ENC28J60的TCP/IP协议栈实现:以太网客户端与服务端通信程序设计

内容概要:本文详细介绍了基于ENC28J60以太网控制器实现TCP/IP协议栈的客户端与服务端程序设计,重点剖析了ARP、ICMP、TCP等核心协议的数据包结构与处理流程。文章通过底层数据结构定义、内存管理、定时器机制、校验和计算、连接状态维护等方式,展示了如何在无硬件TCP/IP栈支持的嵌入式平台上手动实现网络通信功能。涵盖了TCP三次握手、四次挥手、数据收发、连接管理、ARP地址解析、PING请求响应等关键环节,并提供了完整的C语言实现代码与数据内容概要:交互示例。本文详细介绍了 适合人群:具备嵌入式C语言开发基于ENC28J60以基础,熟悉单太网控制器实现片机编程,TCP/IP协议栈对网络协议有一定了解的1-的客户端与服务端通信程序设计,3年工作经验的嵌入式软件重点剖析了底层工程师或物联网开发者网络协议的数据包结构与。 使用场景及目标:①学习交互流程。文章TCP/IP协议栈在从以太网帧裸机环境下的软件实现原理;、ARP、IC②掌握ARP、MP到TCP协议ICMP、TCP逐层展开,定义协议的数据包构造了各类数据包的与解析方法;③结构体与宏实现基于ENC28J,并实现了ARP请求60的嵌入式网络通信模块/应答、;④深入理解TCP连接状态机、超时重ICMP Ping、传、滑动TCP三次握手、窗口等机制的实际数据传输、四编码实现。 阅读次挥手等核心建议:建议结合功能。程序采用代码逐模块分析,重点理解数据纯软件实现TCP结构定义与内存/IP栈,涵盖布局、校验和计算连接管理、定时方式、TCP状态器维护、数据转换逻辑以及定时器驱动的连接校验、序列维护机制;在实际开发中可号处理、MSS选项解析等关键技术参考其实现思路,适用于无内置协议栈的嵌进行移植与优化,注意大小端入式硬件平台处理、内存对齐与协议字段。; 适合人群:具备细节。嵌入式C语言编程能力、熟悉网络基础知识的电子工程师或开发者,尤其适合从事物联网、工业控制等领域且需深入理解TCP/IP底层机制的技术人员。; 使用场景及目标:①学习并掌握TCP/IP协议栈在裸机环境下的软件实现方法;②理解ARP地址解析、ICMP通信、TCP连接建立与释放的完整流程;③应用于基于ENC28J60等无硬件协议栈芯片的嵌入式网络通信项目开发。; 阅读建议:此资源强调底层协议的手动实现,建议读者结合代码逐段分析数据包构造与状态机转换,并通过抓包工具对照验证,以加深对网络协议工作机制的理解。内容概要:本文详细介绍了基于ENC28J60以太网控制器实现TCP/IP协议栈的客户端与服务端通信程序设计,重点剖析了以太网各层数据包的结构定义与处理逻辑。文章从底层数据结构出发,依次阐述ARP、ICMP、TCP协议的数据包格式及其收发处理流程,涵盖MAC地址解析、PING请求响应、TCP三次握手、数据传输及四次挥手断开连接等核心机制。通过手动实现协议封装与解析,帮助开发者深入理解TCP/IP协议栈的工作原理,并提供了完整的C语言代码实现,包括连接管理、定时器维护、校验和计算等功能模块。 适合人群:具备嵌入式C语言开发基础,熟悉单片机编程,对网络协议有一定了解的电子工程、物联网方向的初、中级开发人员。 使用场景及目标:① 学习无操作系统环境下裸机实现TCP/IP协议栈的方法;② 掌握ARP、ICMP、TCP等协议数据包的构造与解析技术;③ 实现基于ENC28J60的嵌入式网络通信终端,支持TCP客户端与服务端功能;④ 深入理解TCP连接建立、数据传输、断开全过程及状态机管理。 阅读建议:建议结合代码逐模块调试,使用Wireshark抓包工具对比分析实际发送与接收的数据包,加深对协议字段含义的理解;重点关注定时器管理、连接状态切换和内存缓冲区操作,确保在资源受限的嵌入式平台稳定运行。

2026-02-03

34-ENC28J60以太网-uip-TCP-Server

uip之TCP服务器。 本文基于ENC28J60以太网控制器实现了一个TCP服务器系统,主要包括以下内容: 系统架构 硬件平台:STM32F10x + ENC28J60 软件组件:uIP协议栈、TCP服务器应用、驱动程序 核心功能实现 TCP服务器监听5000端口 支持8个并发TCP连接 实现数据收发和状态管理 提供连接建立、数据传输、超时处理等回调函数 关键技术点 网络初始化配置(IP、MAC、子网掩码等) uIP协议栈移植和优化 数据缓冲区管理 ARP协议处理 定时器管理(500ms轮询) 性能特点 支持最大1518字节以太网帧 TCP窗口大小动态调整 连接状态监控和日志记录 异常处理和重传机制 该系统实现了完整的TCP服务器功能,能够稳定处理客户端连接和数据传输,为嵌入式网络应用提供了可靠的基础平台。

2025-12-11

以太网HTTP数据包格式分析20251127.pdf网络通信协议分析:以太网ARP与HTTP数据包结构解析及传输机制研究

以太网HTTP数据包格式分析。本文详细分析了以太网HTTP数据包结构,包括ARP和TCP/IP协议的数据包格式。主要内容包括:1. ARP数据包结构分析,包含以太网头部和ARP头部定义;2. TCP/IP数据包结构解析,涵盖以太网首部、IP头部和TCP头部;3. 通过串口跟踪展示了完整的HTTP通信过程,包括ARP请求/应答、TCP三次握手、HTTP请求/响应等交互数据;4. 提供了校验和计算程序实现;5. 使用表格形式详细解析了ARP和HTTP数据包中各字段的含义和数值。文章通过实际通信数据分析,深入展示了网络协议的工作机制和数据包格式规范。内容概要:本文详细分析了以太网中HTTP数据包的格式,通过串口抓包的方式展示了完整的通信流程,包括ARP请求与响应、TCP三次握手、HTTP请求与响应等关键环节。文档深入解析了各层数据包结构,如以太网帧、ARP、IP、TCP头部格式,并结合实际十六进制数据进行逐字段对照说明,同时提供了结构体定义和校验和计算方法,帮助理解底层网络协议的工作机制。此外,文中还通过表格形式对多个数据包进行了系统化拆解,增强了可读性和实用性。; 适合人群:具备基本网络基础知识的嵌入式开发人员、单片机开发者、物联网工程师以及对底层网络协议感兴趣的技术人员。; 使用场景及目标:①学习和掌握以太网通信中ARP、IP、TCP、HTTP协议的实际交互过程;②理解数据链路层到应用层各协议头部的组成与含义;③应用于嵌入式Web服务器开发、网络调试及数据包解析等场景。; 阅读建议:建议结合ENC28J60等以太网控制器的实际应用进行学习,重点关注数据包的构造与解析过程,并动手实践抓包分析,以加深对网络协议栈的理解。

2025-11-27

ENC28J60原理图

ENC28J60是以太网芯片,本原理重点绘制了它和RJ45插座之间连接。

2025-11-04

W5500电路-RJ45-5631-S-K-F-L-8C

W5500是以太网芯片,自带硬件协议栈,性价比要比ENC28J60高,适合做以太网通讯。

2025-11-04

《吴坚鸿-从单片机基础到程序框架》

《吴坚鸿-从单片机基础到程序框架》

2025-10-28

24-W5500基于MAC的WEB服务器控制8个灯

W5500使用软件TCPIP协议栈实现WEB服务器,可控制8个LED灯。适合学习,但用于产品,速度有点慢。

2025-10-16

CRC校验和MD5校验工具

CRC校验和MD5校验工具

2025-09-25

中英文字符编码查询-V1.1

中英文字符编码查询_V1.1

2025-09-25

开拓者32-颜色获取器

开拓者32_颜色获取器

2025-09-25

汉字内码查询V1.3-正点原子

汉字内码查询V1.3_正点原子

2025-09-25

固件库STM32F10x-标准库-V3.5.0

【固件库】STM32F10x_标准库_V3.5.0

2025-09-25

固件库STM32F10x-StdPeriph-Lib-V3.0.0

【固件库】STM32F10x_StdPeriph_Lib_V3.0.0

2025-09-25

《建立一个VC++工程》

内容概要:本文详细介绍了在VC++开发环境中如何建立和配置一个工程,包括创建新的工作区、添加项目到现有工作区、设置项目路径与名称、选择应用类型等步骤。文中通过具体实例演示了创建两个控制台应用程序(Hello和HelloCpp)的过程,并讲解了如何切换活动工程、编译和运行程序。此外,还展示了如何查看.dsw工作区文件的内容,以及如何打开已有工程并修改代码,最终实现一个简单的C++程序,接收用户输入并输出欢迎信息。 适合人群:具备基本C++编程知识、正在学习VC++开发环境使用的初学者或刚入门的开发者。 使用场景及目标:①掌握VC++中创建Win32控制台应用程序的基本流程;②理解工作区(Workspace)与项目(Project)的关系;③学会配置多项目工程并进行编译运行操作;④熟悉从代码编辑到程序执行的完整开发流程。 阅读建议:

2025-09-17

《建立一个VC++程序》基于Visual C++环境的Hello World项实现方法

内容概要:本文介绍了在VC++开发环境中创建和运行一个简单C++程序的完整步骤。通过打开.dsw工作区文件,修改HelloCpp.cpp源代码,加入标准输入输出和字符串处理功能,实现一个欢迎程序。文中详细说明了从文件打开、代码编辑、保存、编译到运行的全过程,并展示了程序执行后的输出效果,帮助用户理解VC++项目的构建流程。; 适合人群:具备基本C++语法知识,正在学习VC++开发环境使用的学生或初学者。; 使用场景及目标:①学习如何在VC++中打开项目并编辑C++源文件;②掌握VC++程序的编译(F7)与运行(Ctrl+F5)操作;③理解简单的C++程序结构,如main函数、string类、cin/cout输入输出等基础语法的应用; 阅读建议:建议读者结合VC++6.0或类似开发环境实际操作,边看步骤边实践,以加深对IDE操作和C++程序运行机制的理解。注意代码中头文件的引用和命名空间的使用,确保程序正确编译执行。

2025-09-17

RJ45插座-FC-256GYNL

W5500官方使用的RJ45插座就是FC-256GYNL。

2025-09-16

W5500电路-RJ45-HR911105A

目前用的比较多的RJ45插座,就是HR911105A。

2025-09-16

空空如也

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

TA关注的人

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