我买了个SPI接口的网口模块,用STM32硬件SPI搞成功了。
现在我想用新定义板子RD8T36P48驱动,老是不成功。
有两个问题:
1.读写寄存器:
Write_W5500_1Byte(0x0001,192);
temp=Read_W5500_1Byte(0x0001);
正常应该读出192,可是我读出的是0xff。
2.
- /*******************************************************************************
- * 函数名 : Detect_Gateway
- * 描述 : 检查网关服务器
- * 输入 : 无
- * 输出 : 无
- * 返回值 : 成功返回TRUE(0xFF),失败返回FALSE(0x00)
- * 说明 : 无
- *******************************************************************************/
- unsigned char Detect_Gateway(void)
- {
- unsigned char ip_adde[4];
- ip_adde[0]=IP_Addr[0]+1;
- ip_adde[1]=IP_Addr[1]+1;
- ip_adde[2]=IP_Addr[2]+1;
- ip_adde[3]=IP_Addr[3]+1;
- //检查网关及获取网关的物理地址
- Write_W5500_SOCK_4Byte(0,Sn_DIPR,ip_adde);//向目的地址寄存器写入与本机IP不同的IP值
- Write_W5500_SOCK_1Byte(0,Sn_MR,MR_TCP);//设置socket为TCP模式
- Write_W5500_SOCK_1Byte(0,Sn_CR,OPEN);//打开Socket
- Delay(5);//延时5ms
-
- if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
- {
- Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
- return FALSE;//返回FALSE(0x00)
- }
- Write_W5500_SOCK_1Byte(0,Sn_CR,CONNECT);//设置Socket为Connect模式
- do
- {
- u8 j=0;
- j=Read_W5500_SOCK_1Byte(0,Sn_IR);//读取Socket0中断标志寄存器
- if(j!=0)
- Write_W5500_SOCK_1Byte(0,Sn_IR,j);
- Delay(5);//延时5ms
- if((j&IR_TIMEOUT) == IR_TIMEOUT)
- {
- return FALSE;
- }
- else if(Read_W5500_SOCK_1Byte(0,Sn_DHAR) != 0xff)
- {
- Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//关闭Socket
- return TRUE;
- }
- }while(1);
- }
老是进到打开不成功,关闭Socket。真郁闷!
|