自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2025-12-16 17:18:32 917

原创 uip之TCP服务器

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

2025-12-11 16:27:21 1017

原创 电池防反接电路

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

2025-12-10 15:33:01 257

原创 深度学习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 597

原创 深度学习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 618

原创 PT协程分析和应用

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

2025-12-03 16:38:34 899

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

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

2025-12-01 14:58:04 439

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

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

2025-11-28 16:59:41 408

原创 以太网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 1197 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 577

原创 “string.h“中的函数

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

2025-11-22 11:38:20 639

原创 C语言控制语句

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

2025-11-22 11:33:30 403

原创 C语言中的构造类型

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

2025-11-22 11:31:21 929

原创 字符和字符串

本文介绍了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 301

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

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

2025-11-22 11:24:40 768

原创 STM32单片机函数

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

2025-11-22 11:19:29 504

原创 STM32单片机指针变量

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

2025-11-22 11:16:34 357

原创 STM32单片机变量

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

2025-11-22 11:14:50 262

原创 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 767

原创 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 1255 1

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

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

2025-11-19 16:20:08 734

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

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

2025-11-19 14:04:01 469

原创 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 759

原创 RA8875支持的字库的FLASH型号

RA8875电路设计需选用指定FLASH型号才能正常工作,包括GT21L16TW、GT21H16T1W、GT30L16U2W等。通过设置0x2F寄存器的bit7:5位,可分别选择不同类型的串行FLASH作为外部字体ROM。文中提供了5种FLASH型号的配置函数,通过修改寄存器值来适配不同型号的FLASH芯片。这些FLASH型号在淘宝均有销售。

2025-11-01 16:35:21 161

原创 解析 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 863

原创 IR红外遥控器和接收器

本文详细介绍了NEC红外遥控协议的工作原理及实现方法。红外通信基于38KHz载波传输,通过不同时长的高低电平组合来表示逻辑0(560us低+560us高)、逻辑1(560us低+1680us高)和引导码(9ms低+4.5ms高)。系统采用STM32定时器进行信号捕获(TIM2)和PWM发射(TIM4),通过识别高低电平时间差来解码接收数据,并实现了完整的发送/接收功能,包括地址码、命令码及其反码的校验机制。文中提供了详细的初始化配置、中断处理和信号发送代码,为红外遥控系统的开发提供了完整的技术方案。

2025-10-22 17:21:11 804

原创 解决Error: L6411E: No compatible library exists with a definition of startup symbol __main.

摘要:编译时遇到"Error:L6411E"报错,提示缺少与__main相关的启动符号定义。经排查发现是连接问题,解决方法为删除相关设置后重新编译即可。操作步骤:在指定位置点击"OK"确认后再次编译。该问题与工程中的main函数定义有关。

2025-10-16 16:52:15 254

原创 字节内的位序和多字节的大小端模式

本文介绍了位序和字节序的概念及其在通信中的应用。位序指字节数据在传输时的各位排列顺序,分为MSB(最高有效位)和LSB(最低有效位)。不同通信协议采用不同的位序:串口从LSB开始传输,I2C和CAN从MSB开始传输,而SPI可配置。字节序分为大端模式(高字节存低地址)和小端模式(低字节存低地址),KEIL是小端模式,IAR是大端模式。通信中需注意不同协议和编译器的大小端模式转换,如以太网采用大端模式。理解这些概念对数据通信和硬件编程至关重要。

2025-10-13 15:18:47 615

原创 W5500接收丢数据

摘要:在测试WEB服务器时发现W5500模块存在数据丢失问题,经检查发现厂家提供的库函数getSn_RX_RSR()存在缺陷。原代码在读取接收缓冲区大小时未添加延时,导致数据不完整(Receive_Len=536),正确数据应为667。通过在读取操作间插入1ms延时delay_ms(1)修复了该问题。同时发现发送缓冲区函数getSn_TX_FSR()存在相同问题,采用相同方案修改后恢复正常。该案例表明厂家驱动代码可能存在未充分测试的情况,深入研究底层代码对解决问题至关重要。

2025-10-10 15:43:11 611 2

原创 以太网继电器控制页面

本文介绍了基于W5500的智能家居继电器控制系统实现方案。通过搭建Web服务器,用户可通过手机浏览器访问控制页面(如http://192.168.2.199/),点击按钮切换8路继电器的开关状态。作者详细对比了W5500与enc28j60的优势(价格更低、体积更小、库易获取),并提供了完整的HTML控制页面代码,包含两种实现方式:可编辑文本框和只读文本框版本。系统通过POST方式将继电器状态传输到后台,数据以ASCII码形式解析后控制相应继电器动作,文末还附有ioLibrary库的下载地址。该方案为家庭无线

2025-10-05 23:27:33 769

原创 #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 250

原创 UIP中的psock_generator_send()的宏分析

本文分析了开发软件中常见的宏定义问题,以UIP代码为例解析了三个关键宏定义:1)PT_THREAD宏将函数声明替换为字符返回类型;2)PT_BEGIN宏通过switch-case结构实现流程控制;3)PT_END宏包含清理和返回值操作。通过逐层展开宏定义,揭示了底层代码逻辑,为理解使用宏定义的程序提供了分析方法。文章指出,掌握宏展开技巧是读懂这类代码的关键。

2025-09-29 17:09:39 264

原创 “声明变量”的语句前加typedef

摘要:typedef在变量声明前使用可定义新数据类型。例如"typedef u16 uip_ip6addr_t[8]"将uip_ip6addr_t定义为含8个u16元素的数组类型。程序演示了该用法:先定义IPv6地址类型uip_ip6addr_t,声明数组并赋值,最后通过串口打印各元素值及类型大小。结果显示该类型占16字节(8个u16元素),验证了typedef创建新数据类型的特性。(149字)

2025-09-26 15:30:33 377

原创 在不同的“*.c”文件中可以定义相同名字的宏

在不同".c"文件中可以定义同名宏,因为每个源文件独立编译,宏作用域仅限于当前文件。这与全局变量不同,不会产生跨文件的宏定义冲突。每个文件中的宏替换只影响本文件代码,即使宏名相同也不会相互覆盖。因此uip-split.c、uip.c和yiyyi.c中的BUF宏可以共存,各自在本文件内有效。

2025-09-26 10:47:50 134

原创 VC++中的fopen(), fclose(),fputc()和fgetc()应用举例

这段C++代码演示了文件操作,主要功能是:1) 创建一个文本文件"alphabet.txt",并写入A-Z的字母;2) 重新打开该文件,读取并显示内容直到遇到字母Z;3) 最后等待用户输入后结束程序。代码使用了标准文件操作函数如fopen、fputc、fgetc等,并包含了一系列数据类型宏定义。程序展示了基本的文件读写操作流程。

2025-09-24 10:06:46 247

原创 构造函数,析构函数和内联函数

本文展示了一个C++程序,定义了一个计算圆面积的Area类。该类包含私有成员radius和area,以及多个构造函数和析构函数。主函数通过三种不同方式实例化Area对象:无参构造函数、单参构造函数(传入半径自动计算面积)和双参构造函数(直接传入半径和面积值)。程序演示了类的基本概念,包括构造函数重载、内联函数和析构函数的使用,同时展示了如何计算和输出圆的面积。最后附带介绍了cout输出格式控制的相关方法。

2025-09-24 09:27:25 870

原创 将AD16中的“Library图标按钮”放在左边显示的好处

摘要:AD16软件中,默认Projects显示在左侧水平展开,Library在右侧竖直折叠。可通过点击Library的"图钉按钮"固定显示,或将其拖至左侧与Projects并列,便于切换操作。若误关闭Projects或Library面板,可通过View→WorkspacesPanels→System→选择对应选项重新显示。该操作方式类似Protel99SE的界面布局。

2025-09-22 14:15:30 327

原创 AD元件库左边的浏览不见了怎么办?

摘要:本文介绍了在Altium Designer软件中恢复PCB和SCH元件库左侧浏览窗口的方法。当PCB元件库浏览窗口消失时,可通过View→Workspaces Panels→PCB→PCBLibrary路径恢复;同理,SCH元件库浏览窗口消失时,可通过View→Workspaces Panels→SCH→SCHLibrary路径恢复。掌握这些操作技巧能有效提升PCB设计和原理图绘制的工作效率。

2025-09-22 10:46:18 410

原创 晶振的等效串联阻抗大小对晶振起振的影响

无源晶振的等效串联阻抗(ESR)是关键的电气参数。ESR过大会导致起振困难、停振及增加电路功耗等问题。选型时应优先选择ESR值较小的晶振,通常尺寸越大的晶振ESR越小。较小的ESR意味着更低的能量损耗和更易起振。常见的封装形式包括金属面贴片、陶瓷外壳玻璃封装及HC-49US贴片封装等,其中HC-49US贴片封装表现较优。

2025-09-18 17:10:10 293

原创 类的定义和使用

该程序实现了一个计算数组总和、平均值及最大最小值的C++类。主要功能包括:1)定义Total_Ave类,包含私有数组a[5]和计算相关数据的成员函数;2)通过get_array()从键盘获取5个整数并计算总和与平均值;3)提供list_data()显示计算结果;4)get_max()和get_min()分别返回数组最大值和最小值。程序还包含多种输出格式控制说明,如对齐方式、进制转换等。主函数创建类实例并调用相关方法完成计算和输出功能。

2025-09-17 14:19:24 728

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

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开发板的Linux系统移植

基于正点原子的STM32FMP157开发板的Linux系统移植,Ubuntu下的Linux压缩包:linux2024-02-5.4.31.tar.bz2

2024-06-24

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

基于正点原子的STM32FMP157开发板的buildroot根文件系统移植,Ubuntu下的Linux压缩包:buildroot2024-2-2020.02.6.tar.bz2

2024-06-24

基于正点原子的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

stm32-CAN波特率计算工具及代码生成

stm32 CAN波特率计算工具,双击合适的配置,并会生成配置代码

2024-06-18

使用单相电测试三相空气开关

使用单相电测试三相空气开关。

2023-10-12

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

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

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

2025-09-16

W5500电路-RJ45-HR911105A

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

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开发包开源代码程序

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

2025-07-15

空空如也

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

TA关注的人

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