解决了电脑连接wifi无法ping通W5500的问题

时间:2024-04-09 20:34:28

目前我们使用w5500遇到一个问题。w5500设置的是静态IP,用网线连到路由器上,电脑也用网线连到路由器上,电脑是可以ping通W5500的。如果电脑用wifi连到路由器上就ping不通w5500.我们目前已经做了两版的样板。我们做的第一版的样板是偶尔用电脑wifi连接路由ping用网线连接的w5500不通,但断电重启又可以。但第二版就一直ping不通。但两个板子均使用电脑网线连接路由器来ping则都可以并且数据发送接受都没有问题。

解决了电脑连接wifi无法ping通W5500的问题

解决办法:

初始化w5500时要将其内部寄存器初始化,即将模式寄存器的第7位置1

解决了电脑连接wifi无法ping通W5500的问题

上述操作在程序中只需在w5500上电复位后添加 iinchip_init(); 

void bsp_eth_init(void)
{
    HAL_GPIO_WritePin(W5500_RST_GPIO_Port, W5500_RST_Pin, GPIO_PIN_SET);
    HAL_GPIO_WritePin(W5500_NSS_GPIO_Port, W5500_NSS_Pin, GPIO_PIN_SET);    
	/***** 硬重启W5500 *****/
	Reset_W5500();
	iinchip_init();
	/***** W5500的IP信息初始化 *****/
	//set_default_eth_param(); 														// 设置默认MAC、IP、GW、SUB、DNS
	get_eth_config();
	set_network();														// 配置初始化IP信息并打印,初始化8个Socket

}

iinchip_init();中执行的操作即是将模式寄存器的第7位置1。