- 博客(651)
- 资源 (70)
- 收藏
- 关注
原创 学习TCP/IP的第8步:紧急数据
本文介绍了TCP协议中的紧急数据传输机制。紧急数据是用户数据流中的特殊字节,通过紧急指针定位,最多只能传输1个字节。文章详细解析了TCP/IPv4数据包结构,包括MAC地址、IP头部、TCP头部等字段定义。重点阐述了紧急数据的处理流程:发送端通过设置URG标志位和紧急指针将紧急数据与用户数据一起发送;接收端根据紧急指针提取紧急数据。文中还提供了连接表结构定义、数据包发送函数实现以及序列号更新机制,展示了如何在实际代码中实现TCP紧急数据传输功能。
2026-01-27 10:06:30
364
原创 学习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
354
原创 学习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
524
原创 学习TCP/IP的第5步:传输数据
本文介绍了TCP通讯中建立连接、传输数据和关闭连接三个关键过程。重点分析了PSH数据包的发送函数实现,包括数据包结构构建、校验和计算以及用户数据填充等核心步骤。通过STM32与ENC28J60以太网模块的配合,展示了如何在嵌入式系统中实现TCP协议栈功能,包括连接管理、数据收发和状态维护。测试结果验证了TCP客户端与服务器端成功建立连接并完成数据传输的功能实现。
2026-01-23 14:33:54
580
原创 学习TCP/IP的第4步:重点掌握TCP序列号和确认号
TCP通信通过序列号和确认号机制确保数据传输的可靠性。建立连接需三次握手:客户端发送SYN包(含随机初始序列号),服务器回复SYN+ACK(含随机序列号及客户端序列号+1),客户端最后发送ACK确认。数据传输时,序列号随数据长度递增,确认号保持对端最新序列号+1。关闭连接采用四次挥手:双方分别发送FIN包并确认。RST包可强制立即终止连接。整个过程通过序列号和确认号的严格匹配实现数据有序传输和连接状态同步。
2026-01-23 13:45:12
924
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
703
1
原创 学习TCP/IP的第2步:ICMP数据包
本文介绍了使用ENC28J60芯片学习TCP/IP协议的方法,重点讲解了ICMP数据包的实现。作者建议选择没有硬件TCP/IP栈的ENC28J60芯片,以便更深入地理解数据包结构。文中详细解析了ICMP协议的工作原理,包括Ping命令使用的回显请求和应答机制,并提供了具体的代码实现。在实现过程中,需要注意关闭计算机防火墙以确保ICMP通讯正常。文章包含完整的ICMP驱动代码和测试程序,展示了如何通过ENC28J60与计算机进行Ping通讯,包括数据包收发、校验和计算等关键步骤。
2026-01-08 12:26:29
661
原创 学习TCP/IP的第1步:ARP数据包
学习TCP/IP协议栈应从底层ARP协议入手,使用ENC28J60等无硬件协议栈的芯片更利于深入理解。本文详细介绍了ARP数据包结构及实现方法,包括: 定义网络信息结构体,包含MAC/IP/子网掩码/网关等参数 实现ARP请求发送函数(已知/未知目标MAC两种场景) 处理ARP请求接收与应答 设计ARP缓存表管理机制,包含超时更新策略 通过完整实现ARP协议栈,可深入理解以太网数据帧结构和网络通信基本原理,为后续学习TCP/IP协议打下基础。
2026-01-07 11:36:44
707
原创 重点学习三极管放大电路设计
本文系统介绍了三极管的基本原理与应用。主要内容包括:1)三极管类型(NPN/PNP)及电路符号识别;2)三个工作区(截止、放大、饱和)的偏置条件;3)关键参数符号及含义(如UBE(on)、VCEO、β值等);4)直流通路分析与静态工作点计算;5)等效电路模型及输入/输出电阻计算;6)共射极放大电路设计,重点分析发射极电阻RE的作用(稳定工作点、负反馈等),并提供具体参数计算方法。文章通过公式推导和实例计算,详细说明了三极管在放大电路中的应用要点。
2025-12-16 17:18:32
1186
原创 uip之TCP服务器
本文基于ENC28J60以太网控制器实现了一个TCP服务器系统,主要包括以下内容: 系统架构 硬件平台:STM32F10x + ENC28J60 软件组件:uIP协议栈、TCP服务器应用、驱动程序 核心功能实现 TCP服务器监听5000端口 支持8个并发TCP连接 实现数据收发和状态管理 提供连接建立、数据传输、超时处理等回调函数 关键技术点 网络初始化配置(IP、MAC、子网掩码等) uIP协议栈移植和优化 数据缓冲区管理 ARP协议处理 定时器管理(500ms轮询) 性能特点 支持最大1518字节以太网
2025-12-11 16:27:21
1062
原创 电池防反接电路
判断电动车充电器好坏需注意:1.需使用Y型螺丝刀打开塑料外壳;2.测量输出电压需外接电池或75Ω大功率电阻(因防反接电路需电池供电才能工作);3.充电器采用DB151晶闸管(触发电流2-15mA)和DB3W双向触发二极管(转折电压28-36V)构成的防反接保护电路,确保电池正接时才能导通充电。测试70V输出时,必须满足上述条件才能正常测量电压。
2025-12-10 15:33:01
363
原创 深度学习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
610
原创 深度学习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
632
原创 PT协程分析和应用
本文分析了PT协程的非阻塞特性及其实现原理。PT协程通过switch-case语句和状态变量实现协程调度,表面看似阻塞的代码实际上是基于条件判断的非阻塞执行。文章详细解析了PT协程的核心机制,包括lc-switch.h和pt.h中的关键宏定义,展示了如何通过PT_BEGIN、PT_WAIT_UNTIL等宏实现协程的挂起和恢复。通过一个STM32应用实例,演示了主协程调度子协程的过程,包括定时器同步和时间判断。分析表明,PT协程本质上是单任务的,适合用于学习协程的基本概念和实现原理。
2025-12-03 16:38:34
927
原创 “do{}while(0)”的作用
本文分析了do{}while(0)在C/C++编程中的三种典型应用场景:1)作为代码分块工具,允许在块内定义局部变量;2)用于宏定义,避免宏替换时因缺少大括号导致的逻辑错误;3)替代goto语句实现流程控制,提高代码可读性。在Linux内核和开源代码中,这种结构既能确保宏替换后的语法正确性,又能保持代码整洁,是解决复杂宏定义和流程控制问题的有效方案。通过实例对比展示了do{}while(0)相比直接使用大括号或goto语句的优势。
2025-12-01 14:58:04
454
原创 学习“指针函数,函数指针,指针数组,数组指针”
本文介绍了C语言中指针函数、函数指针、指针数组和数组指针的概念及用法。指针函数是返回指针的函数,函数指针是指向函数的指针变量。指针数组是元素为指针的数组,数组指针则指向一个数组缓冲区。通过typedef为函数指针类型创建别名,可以简化声明。文中提供了完整的测试代码,展示了如何使用结构体数组存储不同函数指针,并通过名称匹配调用相应函数。测试结果表明,系统能正确识别函数名并执行对应的函数操作,未匹配时执行默认函数。该实现方法可用于构建灵活的基于名称的函数调用机制。
2025-11-28 16:59:41
424
原创 以太网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
1227
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
599
原创 “string.h“中的函数
摘要:本文详细介绍了C语言标准库"string.h"中的常用字符串处理函数,包括字符串长度计算(strlen)、内存设置(memset)、字符串复制(strcpy/strncpy/memcpy/memmove)、字符串比较(strcmp/memcmp)、字符串搜索(strchr/strstr)等函数的使用方法和注意事项。通过代码示例演示了各函数的正确用法,并特别强调了内存溢出的风险及防范措施。文章还包含了自定义字符串处理函数(strnchr/strnstr)的实现,为开发者提供了全面的字
2025-11-22 11:38:20
652
原创 C语言控制语句
本文介绍了C语言中的控制语句,主要包括选择结构和循环结构。选择结构部分详细讲解了if语句(单分支、双分支和多分支)和switch语句的语法格式及应用实例,并比较了两者的使用场景。循环结构部分阐述了while、do-while和for三种循环语句的语法特点,通过具体代码演示了不同循环方式的使用方法。此外还介绍了break、continue、goto等流程控制语句的功能特性,最后概括了顺序结构、选择结构和循环结构三大基本程序结构的特点。全文通过丰富的代码示例,系统性地讲解了C语言流程控制语句的语法规则和实际应用
2025-11-22 11:33:30
417
原创 C语言中的构造类型
本文介绍了C语言中的构造数据类型,包括数组、结构体、联合体和枚举。数组是相同数据类型的连续存储元素集合,分为一维和二维数组,可通过下标或指针访问。结构体允许组合不同数据类型成员,需注意内存对齐问题。联合体让成员共享同一内存空间,适合处理同一数据的多种表示方式。枚举用于定义整型常量集合,可指定或使用默认值。文章详细说明了这些类型的声明格式、内存分配规则和访问方法,并强调了使用时的注意事项,如数组越界和结构体内存对齐等问题。这些构造类型大大增强了C语言处理复杂数据的能力。
2025-11-22 11:31:21
942
原创 字符和字符串
本文介绍了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
325
原创 STM32单片机C语言运算符
C语言运算符详解:本文系统介绍了C语言中的各类运算符,包括算术运算符(+、-、*、/、%等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!)、位运算符(&、|、~等)、赋值运算符(=、+=等)以及特殊运算符(sizeof、指针运算符等)。通过代码示例详细演示了每种运算符的使用方法,并提供了运算符优先级表。特别强调了自增/自减运算符的前后置区别("++在前先加,++在后先用后加")以及强制类型转换等重要概念。文章还涵盖了条件运算符、逗号运算符
2025-11-22 11:24:40
794
原创 STM32单片机函数
本文介绍了C语言中函数的基本概念和使用方法。首先通过数学中的线性函数类比说明C语言函数的概念,然后详细讲解了函数的声明格式(无参数无返回值、带参数无返回值、带参数带返回值等)。接着阐述了void关键字在函数中的应用,包括表示无返回值和避免未使用变量警告。文章还详细说明了return语句的用法、函数参数传递方式(数值传递和指针传递),并介绍了函数指针的概念与使用方法。最后简要提及了表达式语句的分类。全文通过具体代码示例帮助理解函数在C语言中的实际应用。
2025-11-22 11:19:29
524
原创 STM32单片机指针变量
本文介绍了指针变量的基本概念和应用。指针变量存储另一个变量的内存地址,在MDK-ARM编译器中固定占用4字节空间。文章详细说明了一维指针和二维指针的声明格式及使用方法,包括通过指针间接修改变量值的操作。重点阐述了void和void**这两种通用指针类型的特点:void可指向任何数据类型,void**则指向void*指针。在使用这些通用指针时,需要通过类型转换才能正确访问数据。通过多个具体示例,展示了如何声明、初始化和操作不同类型的指针变量。
2025-11-22 11:16:34
380
原创 STM32单片机变量
本文介绍了C语言中变量的基本概念和使用规范。主要内容包括:1)变量命名规则要求具有可读性,以字母或下划线开头;2)变量声明格式及访问方式,可通过变量名直接访问或获取地址;3)变量类型分为局部变量和全局变量,详细说明了auto、static、extern等修饰符的使用场景;4)介绍了const和volatile修饰变量的特性;5)通过示例说明了同名全局变量和局部变量的处理方式。文章还提供了各种数据类型变量的声明示例,包括整型、浮点型和布尔型等。
2025-11-22 11:14:50
309
原创 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
806
原创 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
1328
1
原创 以太网ARP数据包格式分析
本文分析了以太网ARP数据包的格式和工作机制。首先介绍了以太网头部结构,包含目的/源MAC地址和协议类型字段。详细解析了ARP数据包结构,包括硬件/协议类型、地址长度、操作码及通信双方的MAC/IP地址。通过实例展示了计算机和ENC28J60设备之间ARP请求与应答的完整交互过程,包括数据包各字段的具体数值。最后提供了ENC28J60发送ARP请求的程序实现代码。分析表明,ARP协议通过广播请求和单播应答的方式实现IP地址到MAC地址的解析,为网络层通信提供底层支持。
2025-11-19 16:20:08
756
原创 如何方便打开或关闭“串口输出的调试信息”
摘要 本文提出了一种通过宏定义来控制串口调试信息输出的方法。通过定义DEBUG_PRINTF宏代替直接使用printf函数,在开发阶段可将宏定义为printf(VA_ARGS)输出调试信息,产品发布时只需将宏定义为空即可关闭所有调试输出。文中详细展示了宏定义方法,并提供了完整的STM32 USART1串口初始化及配置代码,以及包含调试信息输出的主程序示例。这种方法实现了调试信息的灵活控制,避免了在最终产品中手动删除大量printf语句的繁琐工作。
2025-11-19 14:04:01
481
原创 STM32 F103外部晶振8MHz改为12MHz,如何配置?
摘要:将STM32F103外部晶振从8MHz改为12MHz并保持72MHz主频的配置步骤:1)修改stm32f10x.h中的HSE_VALUE为12000000;2)在system_stm32f10x.c中调整PLL倍频系数(改为6倍);3)调用HSE_SetSysClock(RCC_PLLMul_6)重新配置系统时钟。配置完成后需验证PLL稳定性和时钟源切换状态。
2025-11-08 13:37:52
814
原创 RA8875支持的字库的FLASH型号
RA8875电路设计需选用指定FLASH型号才能正常工作,包括GT21L16TW、GT21H16T1W、GT30L16U2W等。通过设置0x2F寄存器的bit7:5位,可分别选择不同类型的串行FLASH作为外部字体ROM。文中提供了5种FLASH型号的配置函数,通过修改寄存器值来适配不同型号的FLASH芯片。这些FLASH型号在淘宝均有销售。
2025-11-01 16:35:21
165
原创 解析 FSMC 地址线与 LCD RS 引脚的连接控制逻辑
摘要:文章分析了FSMC驱动LCD时不同芯片对RS信号定义的差异。在RA8875中,RS=1表示命令,地址0x60020000为命令区;而在ILI9341中,RS=1表示数据,通过FSMC_A10区分寄存器(0x6C0007FE)和数据区(0x6C000800)。文中详细解释了FSMC地址映射机制,说明外部存储器宽度不同时HADDR与FSMC_A的转换关系,最终通过查阅资料解决了不同芯片RS信号定义差异的困惑。
2025-10-30 13:48:52
879
原创 IR红外遥控器和接收器
本文详细介绍了NEC红外遥控协议的工作原理及实现方法。红外通信基于38KHz载波传输,通过不同时长的高低电平组合来表示逻辑0(560us低+560us高)、逻辑1(560us低+1680us高)和引导码(9ms低+4.5ms高)。系统采用STM32定时器进行信号捕获(TIM2)和PWM发射(TIM4),通过识别高低电平时间差来解码接收数据,并实现了完整的发送/接收功能,包括地址码、命令码及其反码的校验机制。文中提供了详细的初始化配置、中断处理和信号发送代码,为红外遥控系统的开发提供了完整的技术方案。
2025-10-22 17:21:11
901
原创 解决Error: L6411E: No compatible library exists with a definition of startup symbol __main.
摘要:编译时遇到"Error:L6411E"报错,提示缺少与__main相关的启动符号定义。经排查发现是连接问题,解决方法为删除相关设置后重新编译即可。操作步骤:在指定位置点击"OK"确认后再次编译。该问题与工程中的main函数定义有关。
2025-10-16 16:52:15
287
原创 字节内的位序和多字节的大小端模式
本文介绍了位序和字节序的概念及其在通信中的应用。位序指字节数据在传输时的各位排列顺序,分为MSB(最高有效位)和LSB(最低有效位)。不同通信协议采用不同的位序:串口从LSB开始传输,I2C和CAN从MSB开始传输,而SPI可配置。字节序分为大端模式(高字节存低地址)和小端模式(低字节存低地址),KEIL是小端模式,IAR是大端模式。通信中需注意不同协议和编译器的大小端模式转换,如以太网采用大端模式。理解这些概念对数据通信和硬件编程至关重要。
2025-10-13 15:18:47
678
原创 W5500接收丢数据
摘要:在测试WEB服务器时发现W5500模块存在数据丢失问题,经检查发现厂家提供的库函数getSn_RX_RSR()存在缺陷。原代码在读取接收缓冲区大小时未添加延时,导致数据不完整(Receive_Len=536),正确数据应为667。通过在读取操作间插入1ms延时delay_ms(1)修复了该问题。同时发现发送缓冲区函数getSn_TX_FSR()存在相同问题,采用相同方案修改后恢复正常。该案例表明厂家驱动代码可能存在未充分测试的情况,深入研究底层代码对解决问题至关重要。
2025-10-10 15:43:11
645
2
原创 以太网继电器控制页面
本文介绍了基于W5500的智能家居继电器控制系统实现方案。通过搭建Web服务器,用户可通过手机浏览器访问控制页面(如http://192.168.2.199/),点击按钮切换8路继电器的开关状态。作者详细对比了W5500与enc28j60的优势(价格更低、体积更小、库易获取),并提供了完整的HTML控制页面代码,包含两种实现方式:可编辑文本框和只读文本框版本。系统通过POST方式将继电器状态传输到后台,数据以ASCII码形式解析后控制相应继电器动作,文末还附有ioLibrary库的下载地址。该方案为家庭无线
2025-10-05 23:27:33
789
原创 #define 宏名() (变量名=常数)的问题分析
本文探讨了C语言中宏定义的使用方法及注意事项。文章首先介绍了无参宏定义和带参宏定义的基本语法格式,并通过#define M(a+b)和#define Add(x,y)等示例说明其替换功能。然后重点分析了宏定义在判断语句中的使用问题,通过#define uip_close()(UIPFlag=UIP_CLOSE)的实例,指出将赋值操作放入宏定义可能导致的逻辑错误,并提供了测试代码验证。最后以uIP移植中的httpd.c为例,说明在特定场景下将宏定义作为执行语句的合理性。文章通过具体案例对比,强调了在不同应用场
2025-09-30 15:57:05
256
原创 UIP中的psock_generator_send()的宏分析
本文分析了开发软件中常见的宏定义问题,以UIP代码为例解析了三个关键宏定义:1)PT_THREAD宏将函数声明替换为字符返回类型;2)PT_BEGIN宏通过switch-case结构实现流程控制;3)PT_END宏包含清理和返回值操作。通过逐层展开宏定义,揭示了底层代码逻辑,为理解使用宏定义的程序提供了分析方法。文章指出,掌握宏展开技巧是读懂这类代码的关键。
2025-09-29 17:09:39
269
MQTT通信协议-MQTT-3.1.1-CN
2025-07-15
5-W5500-DHCPClient
2025-05-20
如何设计IAP和APP-2025
2025-03-20
SIM800-Series-AT-Command-Manual-V1.07
2024-07-17
基于正点原子的STM32FMP157开发板的Linux系统移植
2024-06-24
基于正点原子的STM32FMP157开发板的buildroot根文件系统移植
2024-06-24
基于正点原子的STM32FMP157开发板的FlashLayout
2024-06-24
基于正点原子的STM32FMP157开发板的Uboot移植
2024-06-24
基于正点原子的STM32FMP157开发板的TF-A移植
2024-06-24
基于正点原子的STM32FMP157开发板的busybox根文件系统移植
2024-06-24
34-ENC28J60以太网-uip-TCP-Server
2025-12-11
以太网HTTP数据包格式分析20251127.pdf网络通信协议分析:以太网ARP与HTTP数据包结构解析及传输机制研究
2025-11-27
《建立一个VC++工程》
2025-09-17
《建立一个VC++程序》基于Visual C++环境的Hello World项实现方法
2025-09-17
【网络通信硬件】RJ45磁性模块技术规格:10/100BASE-T单端口连接器设计与波峰焊工艺参数
2025-09-16
【电子设计自动化】AD16原理图和PCB设计入门教程:涵盖工作空间创建、项目管理、原理图与PCB绘制、元件库建立及布线规则设置等基础操作指导
2025-08-14
物联网通信中MQTT协议的详细解析及其报文结构实现
2025-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅