本帖最后由 hszhzwd 于 2020-8-4 11:45 编辑
我用的w5500模块是“HanRun HR911105A”,使用Write_W5500_nByte(unsigned short reg, unsigned char *dat_ptr, unsigned short size)函数给寄存器写入网络参数,写完后再读取每个寄存器数据,并用lcd12864显示屏查看读出的各寄存器的数据情况。
Write_W5500_nByte(GAR, Gateway_IP, 4);
delay(250); //延时0.4S
Write_W5500_nByte(SUBR, Sub_mask, 4);
delay(250); //延时0.4S
Write_W5500_nByte(SIPR, IP_Addr, 4);
delay(250); //延时0.4S
Write_W5500_nByte(SHAR, Phy_addr,6);
delay(250); //延时0.4S
用同一个函数,写不同的寄存器,只有SHAR(物理地址寄存器)写不进去,6个寄存器中读出的数据都是255.最后没有办法,用Write_W5500_1Byte(unsigned short reg, unsigned char dat)函数分别对物理地址的六个寄存器写操作:
Write_W5500_1Byte(0x0009,0x02);
Write_W5500_1Byte(0x000a,0x8a);
Write_W5500_1Byte(0x000b,0x5b);
Write_W5500_1Byte(0x000c,0x7d);
Write_W5500_1Byte(0x000d,0xb3);
Write_W5500_1Byte(0x000e,0x11);
读出的数据仍然是255。请高手指点,可能是哪出了问题,有没有可能是模块坏?可我换了好几个模块都这样。已经努力了好长时间,找不出具体原因。 |