用STM32f103vc和w6100制作IPv4或IPv6环回服务器

使用带 W6100-EVB 的 STM32CubeMX 制作环回服务器,使用 WIZnet W6100 硬连线 TCP/IP 芯片制作 ipv6

转发: Make IPv4 or IPv6 loopback server with STM32f103vc and w6100

项目介绍

第一步:准备软件

Loopback示例测试需要以下串口终端程序,从下面的链接下载和安装。

第二步:准备硬件

将以太网电缆连接到 W6100-EVB 以太网端口。

使用 5 针微型 USB 数据线将 W6100-EVB 连接到台式机或笔记本电脑。

第 3 步:设置环回示例

如果您需要STMCubeIDE和ST Flash Loader设置或使用教程,请参考WIZnet docs sige中的getting start page

Getting Started with the W6100-EVB | WIZnet Document System

Make New W6100-EVB Projects using STM32CubeIDE | WIZnet Document System

而且,这里有很多 W6100-EVB 的示例(MQTT、HTTP、NTP、TLS 等)WIZnet ioLibrary & io6Library examples · GitHub

那是为了 truestudio。 但使用此示例转换 stm32cube 并不困难。

要测试 Loopback 示例,应在代码中完成次要设置。

  • 如果要使用 SPI 测试环回示例,请设置模式开关 [0 0]

  • 如果您想使用总线测试环回示例,请设置模式开关 [0 1]

如果您想使用 DMA,请在“W6100_EVB_SPI_DMA/Core/Inc/”目录中的 main.h 中定义注释。

//#define DMA
  • 在“main.c”中设置网络配置,例如 IP,这是“W6100_EVB_SPI_DMA/Core/Src/”目录中的环回示例。 如果您使用自动地址配置,请不要删除此评论
/* Network */
wiz_NetInfo gWIZNETINFO = { .mac = {
								0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
							},
							.ip = {
								192, 168, 111, 107
							},
							.sn = {
								255, 255, 255, 0
							},
							.gw = {
								192, 168, 11, 1
							},
							.dns = {
								8, 8, 8, 8
							},
							.lla={
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0
							},
							.gua={
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0
							},
							.sn6={
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0
							},
							.gw6={
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0,
								0, 0, 0, 0
							}
};
/* Address Auto Configuration */
  	if(1 != AddressAutoConfig_Init(&gWIZNETINFO))
  	{
  		// Manual Set IPv6
  		gWIZNETINFO = gWIZNETINFO_M;
  		ctlnetwork(CN_SET_NETINFO, &gWIZNETINFO);
  	}

如果您使用静态网络,请配置此注释。 并删除 AddressAutoConfig_Init

wiz_NetInfo gWIZNETINFO_M = { .mac = {0x00,0x08,0xdc,0xFF,0xFF,0xFF},
							.ip = {192,168,11,107},
							.sn = {255, 255, 255, 0},
							.gw = {192, 168, 11, 1},
							.dns = {8, 8, 8, 8},
							//.dhcp = NETINFO_STATIC,
							.lla={
									0x00,0x00, 0x00,0x00,
									0x00,0x00, 0x00,0x00,
								  },   ///< Source Link Local Address

							.gua={0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00},   ///< Source Global Unicast Address
							.sn6={0xff,0xff,0xff,0xff,
									0xff,0xff,0xff,0xff,
									0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00 },   ///< IPv6 Prefix
							.gw6={0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00,
									0x00, 0x00, 0x00, 0x00}   ///< Gateway IPv6 Address
};

并添加这个。

// Manual Set IPv6
  	gWIZNETINFO = gWIZNETINFO_M;
  	ctlnetwork(CN_SET_NETINFO, &gWIZNETINFO);
  • 在“main.c”中设置环回端口配置。
/* Port */
  while (1)
  {
	   	loopback_udps(0,ethBuf0,50000,AS_IPV4);
		loopback_tcps(1,ethBuf3,50003,AS_IPV4);
		loopback_tcps(2,ethBuf4,50004,AS_IPV6);
		loopback_tcps(3,ethBuf5,50005,AS_IPDUAL);
  }

第 4 步:构建

  • 完成 Loopback 示例配置后,鼠标右键单击项目名称并选择“构建项目”

  • 构建完成后,将在“\Debug”或“\Release”目录中生成“xxx.hex”。

第 5 步:上传并运行

通过 UART 进行闪存编程

STMicroelectronics 闪存加载程序演示程序是一个通过其 UART 执行 MCU 闪存在系统编程 (ISP) 的程序。

按下板上的“Boot0”按钮开关,直到复位或供电后打开板子。

  • 按下板上的“Boot0”按钮开关,直到复位或供电后打开板子。

在 Flash 加载器演示程序的主窗口中设置设置。 下图为W6100-EVB的默认配置

  • 在 Flash 加载器演示程序的主窗口中设置设置。 下图为W6100-EVB的默认配置

  • 参考下图 如果您在 flash loader demonstrator 中没有进入下一页,请用户重试此操作。 '按下板上的'Boot0'按钮开关,直到复位或供电后打开板子。

  • 完成flash编程和板卡复位后,MCU开始运行程序 当运行到loopback程序时,如下图串口调试信息打印出来。

  • 使用 ScriptCommunicator TCP、UDP IPv4 或 IPv6 客户端连接到开放环回服务器。 连接loopback server时需要输入步骤3配置的IP,默认为UDP:50000, TCP IPv4:50003, TCP IPv6:50004, TCP IPv4+IPv6:55000

您在终端的启动消息中获得了 IP 信息 📷

  • 运行 ScriptCommunicator 并为 IPv4 连接设置套接字。 并向 W6100EVB 发送消息。 然后 W6100EVB 回复您发送的消息。

  • 运行 ScriptCommunicator 并为 IPv6 连接设置套接字。 并向 W6100EVB 发送消息。 然后 W6100EVB 回复您发送的消息。

  • 测试抓包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值