跳到主要内容

网口 Ping 例程(多任务) v1.0.0

多任务 TCP/IP 协议栈驱动 ENC28J60,静态 IP 192.168.1.20,可 ping 通

适用硬件:STM32F103RCT6 ENC28J60 网络开发板

预期现象

电脑设到 192.168.1.x 网段后 ping 192.168.1.20 应有回应;板上 LED 不闪(由固件推断,未上板实测)

更新说明

首个收录版本,即出货固件,只改了文件名。 只有 hex,地址已内置,从 0x08000000 开始,共 46924 字节。 日期是出货 hex 的文件修改时间;原始工程的编译时间是 2023-10-06。

文件

说明

网口 Ping 例程(多任务) 一、功能 多任务系统下运行 TCP/IP 协议栈(协议栈单独一个任务),网卡是 ENC28J60(SPI1,轮询收包,每 100 ms 查一次)。 只配了静态 IP,没有 DHCP、网页或 TCP/UDP 应用,用来验证网口和协议栈:能 ping、能应答 ARP。 另有一个任务把 PB5 每 500 ms 翻转一次(源码沿用模板的红灯函数)。按原理图,本板 3 颗 LED 经 J5 跳线接, PB5 只引到排针,不接板上 LED,所以看不到闪灯。 二、启动打印(调试串口 USART1 PA9/PA10,115200 8N1) (下面是固件原始输出,原样保留,网页烧录后按它自动核对) init ok create tcpip_thread mbox successful tcpip_thread ok ip:1401a8c0 netmask:ffffff gw:101a8c0 Send_Task created successfully ip / netmask / gw 按小端十六进制打印,1401a8c0 即 192.168.1.20。 顺序按源码整理(由固件推断,未上板实测)。固件里还编进了 etharp / icmp 的调试字符串,ping 时串口可能多出 「icmp_input: ping」之类的行(由固件推断,未上板实测)。 串口自动核对用的那一行取自上面原始输出中不带技术栈名的一行(用户 2026-10-24 定;按固件字符串选定,未上板实测)。 三、出厂默认 IP 192.168.1.20,掩码 255.255.255.0,网关 192.168.1.1,写死在固件里,不能改。 MAC 地址 4D:79:4C:57:49:50(ASCII 字符串,固件内写死),所有板子相同,同一网段只能接一块。 四、注意 不带引导程序,从 0x08000000 运行,镜像 46924 字节(0x08000000–0x0800B74B)。 MAC 首字节 0x4D 的最低位是 1,按以太网规则属于组播地址,个别交换机或网卡可能丢它发出的帧;ping 不通时先直连电脑试。 本 hex 与原始工程的编译产物逐字节相同(SHA256 一致)。