- 博客(594)
- 资源 (17)
- 收藏
- 关注
原创 了解RJ45插座和水晶头网线
摘要:RJ45插座(注册插座)是网络接口标准,10M/100M网仅使用1-3、6号引脚。水晶头(8P8C)有两种接线标准:568A和568B,直通线(两端同标准)用于设备间连接,交叉线(两端不同标准)用于电脑直连。路由器WAN口(多黄色/蓝色)连接外网,LAN口(多灰色/黑色)连接内网设备,插错会导致网络故障。指示灯常亮表示连接正常。(150字)
2025-09-12 15:43:36
110
原创 AD16的PCB拼板
本文介绍了PCB拼板操作的具体步骤:首先确定PCB尺寸(50x24mm),通过Shift+点击选中板框;使用复制功能后,在特殊粘贴设置中调整间距参数(Y向26mm)和拼板数量(1x3);完成后删除原PCB并添加5mm工艺边。此外还说明了如何通过绘制Boardcutout区域在3D视图中显示开槽效果,最后通过快捷键关闭飞线显示以查看3D效果。该流程涵盖了从基础拼板到3D可视化的完整操作链。
2025-09-10 10:40:31
136
原创 解决AD16的PCB顶层和底层同时摆放插件引起元件会变绿
AD16设计PCB时,顶层和底层同时摆放插件元件会变绿的解决方法:进入Design > Rules > Placement,取消勾选ComponentClearance选项,确认后即可消除元件摆放警告。
2025-09-09 16:06:23
196
原创 不同厂家的RJ45插座之间的区别
本文对比分析了HR911105A和FC-256GYNL两种RJ45插座,指出虽然网络接口相同,但引脚定义和几何尺寸存在差异。设计电路时必须明确所选厂家型号,否则可能导致采购错误和项目失败。文章强调了器件选型的重要性,提醒工程师在设计时需特别注意RJ45插座的兼容性问题。
2025-09-08 11:07:36
193
原创 解决“AD16原理图元件库中的元件不能整体旋转”之问题
本文介绍了在AD16原理图元件库中实现元件整体旋转的方法:1)点击DXP菜单进入Preference设置;2)选择Schematic-GraphicalEditing选项;3)取消AlaysDrag的勾选。完成这三步设置后,即可实现元件的整体旋转功能。该方法通过修改软件默认设置解决了AD16中无法整体旋转元件的问题。
2025-09-04 16:29:34
129
原创 MQTT报文的数据结构
本文深入解析了MQTT协议报文结构及其实现。主要内容包括: MQTT报文组成:分为固定报头、可变报头和有效载荷三部分,不同类型报文的组成不同 报文类型定义:详细列出了14种MQTT报文类型及其功能,如CONNECT(连接请求)、PUBLISH(消息发布)等 报文结构解析: 固定报头:包含报文类型和剩余长度 可变报头:根据不同报文类型包含不同字段 有效载荷:部分报文特有的数据内容 具体报文结构实现: 详细分析了CONNECT、PUBLISH、SUBSCRIBE等核心报文的结构定义等。
2025-09-02 16:19:54
693
原创 使用LIS302DL自转特性检测转动次数的原理介绍
LIS302DL加速度传感器寄存器配置与应用摘要 本文详细介绍了ST公司的LIS302DL三轴加速度传感器的寄存器配置和应用方法。主要内容包括: 器件地址配置:根据SDO引脚连接方式(GND或VCC)设置不同的读写地址(0x38/0x39或0x3A/0x3B) 关键寄存器说明: WHO_AM_I:只读器件识别寄存器(0x0F) CTRL_REG1:配置测量范围、采样频率和轴使能(0x20) CTRL_REG2:高通滤波器配置(0x21) CTRL_REG3:中断引脚配置(0x22) 典型应用流程: 内部唤醒
2025-08-13 16:02:52
804
原创 声明结构和给结构赋值
本文介绍了在C语言结构体中定义和使用函数指针的三种方法。通过_WIZCHIP结构体示例,展示了如何在结构体中嵌套定义函数指针成员(如CRIS、CS等子结构体),并详细说明了三种赋值方式:1)声明时使用点标记法初始化;2)声明时使用顺序初始化;3)运行时通过专用函数动态注册。特别演示了回调函数机制,如通过reg_wizchip_cs_cbfunc()函数注册SPI片选操作函数,实现硬件抽象层的灵活配置。这种技术在嵌入式开发(如W5500网络芯片驱动)中广泛应用,相比教科书中的简单结构体赋值。
2025-08-13 14:59:50
576
原创 W5500之“socket.c”中的相关函数
W5500芯片Socket.c文件核心功能摘要 该文件实现了W5500网络芯片的Socket通信接口,主要功能包括: 基础功能: 提供socket()、close()等基础函数 支持TCP/UDP/MACRAW/IPRAW四种协议 管理8个Socket通道(0-7) TCP协议支持: 实现listen()服务器监听 提供connect()客户端连接 包含send()/recv()数据传输 支持disconnect()断开连接 UDP及原始套接字支持: 实现sendto()/recvfrom()数据收发处理。
2025-08-12 16:00:16
640
原创 “W5500.h”中的相关宏定义
W5500芯片寄存器配置与操作摘要 本文详细介绍了W5500网络芯片的寄存器配置和操作方法。主要内容包括: W5500帧结构定义 前2字节为地址段 第3字节为控制段 从第4字节开始为数据段 寄存器分组 通用寄存器区(00000B) Socket寄存器区(00001B-11101B) 发送缓冲区(00010B-11110B) 接收缓冲区(00011B-11111B) 关键寄存器操作 模式寄存器(MR)配置 中断寄存器(IR)处理 Socket寄存器操作 缓冲区管理(TX/RX) 常用功能实现.
2025-08-11 14:41:31
395
原创 “W5500.c”中的相关函数
本文介绍了W5500芯片驱动中的关键函数实现,主要包括:1)) SPI接口读写函数,包括单字节读写和多字节读写;2) 片选控制函数;3) 核心读写函数WIZCHIP_READ/WRITE及其批量版本;4) Socket缓冲区管理函数,包括发送缓冲区操作,接收缓冲区操作。
2025-08-07 17:01:20
420
原创 W5500之Socket寄存器区介绍
W5500芯片Socket寄存器区功能详解 W5500网络芯片的Socket寄存器区包含多种控制寄存器,用于管理Socket的工作模式和状态。主要寄存器包括: 模式寄存器(Sn_MR):配置协议类型(TCP/UDP/MACRAW等)及组播、广播等选项 命令寄存器(Sn_CR):执行OPEN、CLOSE、SEND等操作命令 状态寄存器(Sn_SR):反映Socket当前状态(CLOSED/ESTABLISHED等) 端口/IP寄存器:设置本地和目的端口/IP地址 缓冲区管理寄存器:包括发送/接收缓冲区指针和大
2025-08-07 13:53:34
676
原创 W5500通用寄存器介绍
W5500芯片的通用寄存器详解,包括模式、网络配置和中断控制等关键功能。模式寄存器(MR)支持复位、网络唤醒和PPPoE等功能;网络配置寄存器(GAR/SUBR/SIPR)保存网关、子网掩码和本地IP地址;MAC地址由SHAR寄存器存储;中断相关寄存器(IR/IMR/SIR/SIMR)管理各类网络中断;PPPoE专用寄存器(PHAR/PSID/PMRU)处理PPPoE连接参数;PHYCFGR寄存器配置物理层工作模式。这些寄存器通过特定偏移地址访问,采用大端模式存储数据,为W5500的网络通信提供底层控制。
2025-08-05 14:31:03
1000
原创 W5500的引脚和W5500帧
W5500是一款集成全硬件TCP/IP协议栈的以太网控制器,支持多种网络协议和8个硬件Socket,每个Socket具有2KB收发缓冲区。其引脚功能包括:差分数据传输引脚(TXP/TXN、RXP/RXN)、LED状态指示引脚(SPDLED、LINKLED等)、SPI接口引脚(支持80MHz速率)以及PHY模式选择引脚等。W5500的通信帧由16位地址段、8位控制段和N字节数据段组成,支持可变和固定数据长度两种SPI工作模式。控制器包含1个通用寄存器区和8个Socket寄存器区,每个Socket配有独立的发送
2025-08-05 14:23:21
1293
原创 秋游四褐山
深秋时节,作者重忆四年前四褐山秋游。野菊灿烂,农家小院,黑狗护崽,山径蛐蛐声声。与友登望江塔远眺长江,夕阳下江面如金,三角洲上沙鸥翔集。此景勾起童年河边嬉戏记忆。归途采花追逐,青春笑语回荡山野。1998年10月16日追记这段永驻心间的美好时光。(149字)
2025-07-29 16:31:47
121
原创 MQTT之“DISCONNECT报文”
DISCONNECT报文是MQTT协议中客户端主动断开连接时发送的控制报文。该报文由2字节固定报头组成,无可变报头和有效载荷。第一字节高4位为报文类型值14,低4位为0;第二字节剩余长度值为0。客户端发送DISCONNECT后必须关闭网络连接,服务端不会响应。示例代码展示了如何生成和发送DISCONNECT报文:首先构造0xE0,0x00的报文数据,然后通过指定端口发送,最后关闭连接并更新连接状态标志。整个过程包括报文序列化和网络操作,确保协议要求的断开连接流程正确执行。
2025-07-29 15:44:52
320
原创 MQTT之“PINGREQ报文和PINGRESP报文”
MQTT协议中的PINGREQ和PINGRESP报文用于实现心跳机制。PINGREQ由客户端发送作为心跳请求,PINGRESP是服务端的响应。这两种报文都只包含2字节的固定报头:首字节高4位表示报文类型(PINGREQ为12,PINGRESP为13),低4位为0;次字节表示剩余长度(始终为0)。文中详细说明了报文的编码实现,通过MQTTSerialize_zero函数生成固定格式的报文,PINGREQ报文固定为{0xC0,0x00},PINGRESP报文类似。这种设计确保了连接保活的轻量级实现。
2025-07-29 14:59:37
431
原创 MQTT之“UNSUBSCRIBE报文和UNSUBACK报文”
UNSUBSCRIBE报文用于取消MQTT订阅,其有效载荷必须包含至少一个待取消的订阅主题,支持一次性取消多个订阅。客户端发送UNSUBSCRIBE后,服务端会返回UNSUBACK报文进行确认。UNSUBSCRIBE报文包含固定报头(类型10)、可变报头(报文标识符)和有效载荷(主题列表)。UNSUBACK报文则只有固定报头(类型11)和可变报头(相同报文标识符)。实现时需计算报文长度、序列化数据,并通过套接字发送。客户端需等待服务端的UNSUBACK响应,以确认取消订阅操作是否成功。
2025-07-28 16:29:43
683
原创 MQTT之“SUBSCRIBE报文和SUBACK报文”
本文详细介绍了MQTT协议中的SUBSCRIBE和SUBACK报文结构及实现方法。SUBSCRIBE报文用于订阅一个或多个主题,包含固定报头(报文类型和剩余长度)、可变报头(报文标识符)和有效载荷(主题名及QoS);其生成过程包括计算报文长度、编码剩余长度、添加报头和数据。SUBACK报文是服务端对订阅请求的确认,包含相似的报头结构和有效载荷(返回的QoS值)。文中还提供了相关C语言实现代码,包括报文序列化和反序列化函数的具体实现细节。这些内容为开发者实现MQTT协议订阅功能提供了技术参考。
2025-07-28 13:46:12
1050
原创 MQTT之“PUBLISH报文,PUBACK报文,PUBREC报文,PUBREL报文和PUBCOMP报文”
MQTT协议中PUBLISH报文与其他控制报文的关系详解 摘要: 本文详细解析了MQTT协议中PUBLISH报文与PUBACK、PUBREC、PUBREL、PUBCOMP报文的交互关系。根据QoS级别不同,报文交互存在三种模式:1) QoS=0时仅发送PUBLISH;2) QoS=1时需接收PUBACK响应;3) QoS=2时需经过PUBREC、PUBREL、PUBCOMP三次握手。文章深入剖析了PUBLISH报文的组成结构,包括固定报头(含DUP、QoS、RETAIN标志位)、可变报头(主题名和报文标识符
2025-07-22 09:14:47
629
原创 MQTT之CONNECT报文和CONNACK报文
本文详细解析了MQTT协议中的CONNECT和CONNACK报文结构。CONNECT报文包含固定报头(报文类型和剩余长度)、可变报头(协议名、协议级别、连接标志、保持连接时间)和有效载荷(客户端标识符、遗嘱消息、用户名密码等)。其中连接标志字节控制各字段的可见性,保持连接时间用于控制心跳机制。CONNACK报文则用于服务端响应连接请求,包含连接确认标志和返回码。文章还提供了相关C语言结构体定义和报文序列化/反序列化的实现代码,展示了如何构建和解析这两种报文。这些内容为MQTT协议实现提供了详细的技术参考。
2025-07-17 14:37:13
528
原创 测试W5500的第12步_FTP服务器
文章摘要:本文介绍了基于STM32和W5500的FTP服务器实现方案。FTP协议通过控制连接(端口21)和数据连接(端口20)实现文件传输,支持主动和被动两种模式。使用ioLibrary库中的ftpd.c进行二次开发,添加了scan_files()函数用于文件扫描。通过FileZilla客户端测试,实现了文件上传下载功能。硬件采用STM32F10x系列MCU,软件包含FATFS文件系统支持,提供了完整的初始化流程和代码实现细节,包括网络配置、FTP命令处理及文件操作。测试成功实现了STM32与PC之间的文件
2025-06-30 16:39:04
956
原创 STM32F103内部FLASH用作U盘
摘要: 本文介绍了利用STM32F103内部FLASH模拟U盘的实现方法。通过修改FATFS文件系统和底层驱动,将芯片内部FLASH划分为512字节扇区,支持FAT文件系统读写。文章详细阐述了FLASH读写驱动程序的设计,包括字节/半字操作、扇区擦除和编程等关键实现。同时展示了如何在FATFS的diskio.c中对接FLASH驱动,完成文件系统初始化、格式化等功能。测试结果表明,该方案成功实现了在STM32内部FLASH上创建、读写文本文件的操作,并通过USB接口被识别为标准U盘设备。虽然内部FLASH空间
2025-06-23 16:36:00
830
原创 测试W5500的第11步_使用ARP解析IP地址对应的MAC地址
本文介绍了基于W5500芯片的ARP协议实现方法,详细阐述了ARP请求与回复的工作机制。ARP协议通过广播请求和单播回复实现IP地址与MAC地址的映射,确保局域网设备间的可靠通信。文章提供了完整的STM32F10x开发环境下的代码实现,包括网络初始化、SPI接口配置、ARP请求发送和回复处理等核心功能模块。测试结果表明,该系统能成功完成ARP地址解析,准确获取目标设备的MAC地址,为后续网络通信奠定基础。
2025-06-05 17:02:46
806
原创 stm32G473的flash模式是单bank还是双bank?
《STM32G473 Flash存储模式解析》摘要: 根据STM32G4系列参考手册可知,STM32G473属于双BANK结构。其次通过程序,根据最大的FLASH地址通过程序读取BANK ID,也可以知道是双还是单?
2025-06-05 13:41:50
1288
原创 测试W5500的第10步_使用W5500去PING计算机
本文主要介绍采用W5500和计算机之间互相PING,看看网络是否连接是否正常。W5500工作在 IPRAW模式下,去PING远程计算机,同时,远程计算机也可以PING 这个W5500。W5500工作在TCP模式下,远程计算机可以随时去PING这个W5500。
2025-06-04 11:33:55
516
原创 移动网络会自动打开吗?
摘要:最近发现关闭移动网络后,手机会自动重新开启该功能。经排查发现是打开了“自动切换移动数据”开关导致的。一开始怀疑移动公司做手脚,后来发现手机厂商的软件问题,手动配置会被篡改。
2025-05-29 09:31:56
574
原创 测试W5500的第9步_使用SNTP实现网络时间同步
本文摘要: 文章介绍了NTP与SNTP两种网络时间协议的区别,其中NTP提供微秒级精确同步,SNTP是简化版本精度约1秒。列举了常用的NTP服务器域名,包括开源、云服务商和操作系统自带的。提供了ioLibrary库的下载地址,并详细展示了基于W5500芯片实现SNTP协议的STM32代码,包括变量定义、网络参数配置、主程序逻辑和DNS解析过程。最后通过测试成功获取北京时间并输出,验证了SNTP时间同步功能的实现。
2025-05-28 15:14:23
513
1
原创 测试W5500的第8步_使用ioLibrary库创建HTTP服务器
本文介绍了如何使用STM32和W5500搭建HTTP服务器,并详细解析了HTML网页文件的结构。主要内容包括: HTML基础知识:介绍HTML标签、网页结构及常用标签用法; index.html示例:提供完整的网页模板代码,包含标题、导航栏和内容区; 硬件实现:给出STM32和W5500的初始化代码,包括网络参数配置; 测试方法:说明通过浏览器访问服务器的操作步骤,展示预期网页效果; 资源获取:提供所需库文件的下载地址。该方案可实现基本的网页服务功能,适合嵌入式系统学习应用。
2025-05-28 10:44:29
1015
原创 测试W5500的第7步_使用ioLibrary库创建HTTP客户端
本文介绍了基于STM32和W5500芯片的HTTP通信开发过程。主要内容包括:1)HTTP测试工具httpbin的使用说明;2)W5500硬件初始化与SPI接口配置;3)DNS域名解析功能实现;4)HTTP客户端功能开发。通过实际测试,成功实现了域名解析、HTTP GET/POST请求等功能,验证了系统的可用性。测试结果显示,设备能正确获取IP地址信息,并能通过HTTP协议与远程服务器进行数据交互。文中详细提供了各功能模块的代码实现思路和关键配置参数,为嵌入式网络通信开发提供了实用参考。
2025-05-26 15:34:53
536
原创 测试W5500的第6步_使用ioLibrary库创建DNS
本文介绍了基于STM32F10x和W5500的DNS解析实现,详细描述了硬件初始化、SPI配置、W5500芯片的初始化及网络参数设置。通过DNS_run函数实现域名解析,成功后将解析结果输出。代码中还包括了W5500的SPI通信、定时器中断、网络信息读取等功能,最终通过串口输出网络配置信息和DNS解析结果。测试结果表明,系统能够成功解析域名并输出对应的IP地址。
2025-05-23 14:47:59
259
2
原创 测试W5500的第5步_使用ioLibrary库创建UDP组播
UDP组播是一种向特定设备组发送数据的网络通信方式。其基本步骤包括:设置本地网络参数(如IP地址、子网掩码、网关等),为SOCKET通道配置临时MAC地址、组播IP地址和端口,以便接收组内消息。发送组播消息时,数据需发送到组播组的IP地址和端口。
2025-05-23 10:28:59
440
原创 测试W5500的第4步_使用ioLibrary库创建UDP客户端和服务器端
当W5500用作服务器时,只需要一个SOCKET就可以和很多个UDP客户端进行通讯。同理,当W5500用作客户端时,可以也很多个UDP服务器与之通讯。因为本计算机只有1个IP地址,无法测试,只能将W5500的8个SOCKET通道设置为不同的端口来测试UDP客户端。本文还详细介绍了W5500的初始化、网络配置及UDP通信的实现过程,展示了其作为UDP客户端和服务器端的应用场景。
2025-05-21 14:37:30
555
原创 测试W5500的第3步_使用ioLibrary库创建TCPServer
W5500是一款具有8个Socket的网络芯片,支持TCP Server模式,最多可同时连接8个客户端。本文介绍了基于STM32F10x和W5500的TCP Server实现,包括SPI初始化、W5500复位、网络参数配置、Socket状态管理等功能,适用于需要多客户端连接的嵌入式网络应用场景。
2025-05-20 16:05:39
419
原创 测试W5500的第2步_使用ioLibrary库创建TCP客户端
本文介绍了如何初始化STM32的硬件资源,配置W5500的网络参数,并通过DHCP获取动态IP地址。并使用这个IP地址配置TCP客户端,以及双方交换数据的测试。
2025-05-20 12:54:20
473
原创 测试W5500的第1步_使用ioLibrary库创建DHCP客户端
本文介绍了如何通过STM32F10x与W5500以太网模块进行通信的代码实现。首先,通过SPI接口初始化W5500的硬件配置,包括SPI引脚、复位引脚和中断引脚的设置。接着,注册SPI的片选、读写函数,并通过DHCP协议动态获取IP地址。
2025-05-20 12:33:52
327
原创 STM32F103定时器1每毫秒中断一次
定时器溢出中断,在程序设计中经常用到。在使用TIM1和TIM8溢出中断时,需要注意“TIM_TimeBaseStructure.TIM_RepetitionCounter=0;”,它表示溢出一次,并可以设置中断标志位。
2025-05-17 22:37:39
640
原创 W5500使用ioLibrary库创建DHCP客户端
本文还绍了如何配置W5500的网络参数,并通过代码示例展示了如何初始化SPI接口、配置端口、实现DHCP获取在局域网中的本地IP地址。端口0配置为调试端口,端口1配置为DNS客户端,端口2配置DHCP客户端。
2025-05-17 16:06:10
926
1
基于正点原子的STM32FMP157开发板的Linux系统移植
2024-06-24
普冉开发板原理图和数据手册
2023-08-28
STM32F103之CAN通讯测试
2023-07-09
STM32F103移植uC-OSII工程模板
2023-06-23
STM32F103移植uC-OSIII工程模板
2023-06-23
《1-uC-OSII-任务挂起-恢复-删除-例程》
2023-06-05
uCOSii-任务管理
2023-05-23
《PIC单片机CCS-C编译器参考手册》
2023-05-02
STM8S207RB带uCOSII系统
2023-01-29
STM32芯片驱动AD5412或AD5416程序及其电路图
2022-07-26
使用串口4测试栈溢出,支持FreeRTOS,4个任务,1个定时器和RTC
2022-07-15
【电子设计自动化】AD16原理图和PCB设计入门教程:涵盖工作空间创建、项目管理、原理图与PCB绘制、元件库建立及布线规则设置等基础操作指导
2025-08-14
物联网通信中MQTT协议的详细解析及其报文结构实现
2025-07-29
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开发板的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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人