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

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

上述操作在程序中只需在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。
本文描述了使用W5500芯片在网络连接中遇到的问题,当电脑通过WiFi连接到路由器时,无法Ping通设置为静态IP的W5500。通过在初始化时设置模式寄存器的第7位为1解决了该问题。
2320

被折叠的 条评论
为什么被折叠?



