- 博客(571)
- 资源 (17)
- 收藏
- 关注
原创 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
751
原创 测试W5500的第11步_使用ARP解析IP地址对应的MAC地址
本文介绍了基于W5500芯片的ARP协议实现方法,详细阐述了ARP请求与回复的工作机制。ARP协议通过广播请求和单播回复实现IP地址与MAC地址的映射,确保局域网设备间的可靠通信。文章提供了完整的STM32F10x开发环境下的代码实现,包括网络初始化、SPI接口配置、ARP请求发送和回复处理等核心功能模块。测试结果表明,该系统能成功完成ARP地址解析,准确获取目标设备的MAC地址,为后续网络通信奠定基础。
2025-06-05 17:02:46
701
原创 stm32G473的flash模式是单bank还是双bank?
《STM32G473 Flash存储模式解析》摘要: 根据STM32G4系列参考手册可知,STM32G473属于双BANK结构。其次通过程序,根据最大的FLASH地址通过程序读取BANK ID,也可以知道是双还是单?
2025-06-05 13:41:50
1071
原创 测试W5500的第10步_使用W5500去PING计算机
本文主要介绍采用W5500和计算机之间互相PING,看看网络是否连接是否正常。W5500工作在 IPRAW模式下,去PING远程计算机,同时,远程计算机也可以PING 这个W5500。W5500工作在TCP模式下,远程计算机可以随时去PING这个W5500。
2025-06-04 11:33:55
400
原创 移动网络会自动打开吗?
摘要:最近发现关闭移动网络后,手机会自动重新开启该功能。经排查发现是打开了“自动切换移动数据”开关导致的。一开始怀疑移动公司做手脚,后来发现手机厂商的软件问题,手动配置会被篡改。
2025-05-29 09:31:56
231
原创 测试W5500的第9步_使用SNTP实现网络时间同步
本文摘要: 文章介绍了NTP与SNTP两种网络时间协议的区别,其中NTP提供微秒级精确同步,SNTP是简化版本精度约1秒。列举了常用的NTP服务器域名,包括开源、云服务商和操作系统自带的。提供了ioLibrary库的下载地址,并详细展示了基于W5500芯片实现SNTP协议的STM32代码,包括变量定义、网络参数配置、主程序逻辑和DNS解析过程。最后通过测试成功获取北京时间并输出,验证了SNTP时间同步功能的实现。
2025-05-28 15:14:23
412
1
原创 测试W5500的第8步_使用ioLibrary库创建HTTP服务器
本文介绍了如何使用STM32和W5500搭建HTTP服务器,并详细解析了HTML网页文件的结构。主要内容包括: HTML基础知识:介绍HTML标签、网页结构及常用标签用法; index.html示例:提供完整的网页模板代码,包含标题、导航栏和内容区; 硬件实现:给出STM32和W5500的初始化代码,包括网络参数配置; 测试方法:说明通过浏览器访问服务器的操作步骤,展示预期网页效果; 资源获取:提供所需库文件的下载地址。该方案可实现基本的网页服务功能,适合嵌入式系统学习应用。
2025-05-28 10:44:29
912
原创 测试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
477
原创 测试W5500的第6步_使用ioLibrary库创建DNS
本文介绍了基于STM32F10x和W5500的DNS解析实现,详细描述了硬件初始化、SPI配置、W5500芯片的初始化及网络参数设置。通过DNS_run函数实现域名解析,成功后将解析结果输出。代码中还包括了W5500的SPI通信、定时器中断、网络信息读取等功能,最终通过串口输出网络配置信息和DNS解析结果。测试结果表明,系统能够成功解析域名并输出对应的IP地址。
2025-05-23 14:47:59
232
2
原创 测试W5500的第5步_使用ioLibrary库创建UDP组播
UDP组播是一种向特定设备组发送数据的网络通信方式。其基本步骤包括:设置本地网络参数(如IP地址、子网掩码、网关等),为SOCKET通道配置临时MAC地址、组播IP地址和端口,以便接收组内消息。发送组播消息时,数据需发送到组播组的IP地址和端口。
2025-05-23 10:28:59
270
原创 测试W5500的第4步_使用ioLibrary库创建UDP客户端和服务器端
当W5500用作服务器时,只需要一个SOCKET就可以和很多个UDP客户端进行通讯。同理,当W5500用作客户端时,可以也很多个UDP服务器与之通讯。因为本计算机只有1个IP地址,无法测试,只能将W5500的8个SOCKET通道设置为不同的端口来测试UDP客户端。本文还详细介绍了W5500的初始化、网络配置及UDP通信的实现过程,展示了其作为UDP客户端和服务器端的应用场景。
2025-05-21 14:37:30
486
原创 测试W5500的第3步_使用ioLibrary库创建TCPServer
W5500是一款具有8个Socket的网络芯片,支持TCP Server模式,最多可同时连接8个客户端。本文介绍了基于STM32F10x和W5500的TCP Server实现,包括SPI初始化、W5500复位、网络参数配置、Socket状态管理等功能,适用于需要多客户端连接的嵌入式网络应用场景。
2025-05-20 16:05:39
372
原创 测试W5500的第2步_使用ioLibrary库创建TCP客户端
本文介绍了如何初始化STM32的硬件资源,配置W5500的网络参数,并通过DHCP获取动态IP地址。并使用这个IP地址配置TCP客户端,以及双方交换数据的测试。
2025-05-20 12:54:20
431
原创 测试W5500的第1步_使用ioLibrary库创建DHCP客户端
本文介绍了如何通过STM32F10x与W5500以太网模块进行通信的代码实现。首先,通过SPI接口初始化W5500的硬件配置,包括SPI引脚、复位引脚和中断引脚的设置。接着,注册SPI的片选、读写函数,并通过DHCP协议动态获取IP地址。
2025-05-20 12:33:52
284
原创 STM32F103定时器1每毫秒中断一次
定时器溢出中断,在程序设计中经常用到。在使用TIM1和TIM8溢出中断时,需要注意“TIM_TimeBaseStructure.TIM_RepetitionCounter=0;”,它表示溢出一次,并可以设置中断标志位。
2025-05-17 22:37:39
442
原创 W5500使用ioLibrary库创建DHCP客户端
本文还绍了如何配置W5500的网络参数,并通过代码示例展示了如何初始化SPI接口、配置端口、实现DHCP获取在局域网中的本地IP地址。端口0配置为调试端口,端口1配置为DNS客户端,端口2配置DHCP客户端。
2025-05-17 16:06:10
873
1
原创 W5500使用ioLibrary库创建DNS客户端
在因特网中,主机访问另一台主机时需获取其IP地址,但IP地址由四段数字组成,不易记忆,因此使用域名系统(DNS)来管理域名与IP的对应关系。本文详细介绍了如何通过W5500芯片实现DNS解析功能。首先,通过SPI接口初始化W5500芯片,并配置其网络参数,包括MAC地址、IP地址、子网掩码、网关和DNS服务器。接着,通过DNS客户端功能将域名解析为IP地址,并使用W5500的端口1进行解析操作。最终,解析结果通过端口0发送到远程主机。此外,文章还提供了相关代码实现,包括SPI初始化、DNS解析、定时器配置等
2025-05-17 15:26:48
216
原创 W5500使用ioLibrary库创建TCP客户端
WIZnet的全硬件TCP/IP协议栈支持多种网络协议,如TCP、UDP、IPv4等,适用于W5500、W5300等芯片。W5500是一款集成TCP/IP协议栈的以太网控制器,支持8个独立端口同时通讯,。每一个 Socket 的发送 缓存区都在一个 16KB 的物理发送内存中,初始化分配为 2KB。每一个 Socket 的接收缓 存区都在一个 16KB 的物理接收内存中,初始化分配为 2KB。
2025-05-17 11:21:13
976
原创 keil中不用srand()设置种子值rand()也可以生成随机数
rand()在生成随机数时,同时将将这个随机数设置为下一个种子值,这就是,keil不用srand()设置种子值,rand()也可以生成随机数的原因。
2025-05-06 10:36:52
423
原创 分析rand()和srand()函数的功能
分析rand()和srand()函数的功能,如何设置随机发生器,生成随机数。在Keil环境中,如果不使用srand()函数,直接调用rand()函数也可以生成随机数。调用rand()不但可以生成一个新的随机数,而且也会更新“种子值”。
2025-05-05 22:50:00
913
原创 分析strtol(),strtoul()和strtod()三个函数的功能
分析strtol(),strtoul()和strtod()三个函数的功能,重点分析strtol()和strtoul()之间的区别。
2025-05-05 19:31:00
831
1
原创 MCU屏和RGB屏
MCU屏:全称为单片机控制屏(Microcontroller Unit Screen),在显示屏背后集成了单片机控制器,因此,MCU屏里面有专用的驱动芯片。RGB屏的内部没有GRAM和控制器。
2025-04-11 12:35:58
1103
原创 语法:MEMCPY( )和MEMMOVE( )
memcpy(destination, source, n); memmove(destination, source, n);该函数从RAM中的源存储区复制n个字节到RAM中的目的存储区;
2025-04-06 21:36:30
230
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
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
普冉开发板原理图和数据手册
2023-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人