[技术问答] 新定义板子SPI方式驱动W5500的问题

[复制链接]
 楼主| 比神乐 发表于 2023-1-16 20:27 | 显示全部楼层 |阅读模式
我买了个SPI接口的网口模块,用STM32硬件SPI搞成功了。
现在我想用新定义板子RD8T36P48驱动,老是不成功。
有两个问题:
1.读写寄存器:
Write_W5500_1Byte(0x0001,192);
        temp=Read_W5500_1Byte(0x0001);

正常应该读出192,可是我读出的是0xff。
2.
  1. /*******************************************************************************
  2. * 函数名  : Detect_Gateway
  3. * 描述    : 检查网关服务器
  4. * 输入    : 无
  5. * 输出    : 无
  6. * 返回值  : 成功返回TRUE(0xFF),失败返回FALSE(0x00)
  7. * 说明    : 无
  8. *******************************************************************************/
  9. unsigned char Detect_Gateway(void)
  10. {
  11.         unsigned char ip_adde[4];
  12.         ip_adde[0]=IP_Addr[0]+1;
  13.         ip_adde[1]=IP_Addr[1]+1;
  14.         ip_adde[2]=IP_Addr[2]+1;
  15.         ip_adde[3]=IP_Addr[3]+1;

  16.         //检查网关及获取网关的物理地址
  17.         Write_W5500_SOCK_4Byte(0,Sn_DIPR,ip_adde);//向目的地址寄存器写入与本机IP不同的IP值
  18.         Write_W5500_SOCK_1Byte(0,Sn_MR,MR_TCP);//设置socket为TCP模式
  19.         Write_W5500_SOCK_1Byte(0,Sn_CR,OPEN);//打开Socket       
  20.         Delay(5);//延时5ms        
  21.        
  22.         if(Read_W5500_SOCK_1Byte(0,Sn_SR) != SOCK_INIT)//如果socket打开失败
  23.         {
  24.                 Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//打开不成功,关闭Socket
  25.                 return FALSE;//返回FALSE(0x00)
  26.         }

  27.         Write_W5500_SOCK_1Byte(0,Sn_CR,CONNECT);//设置Socket为Connect模式                                               

  28.         do
  29.         {
  30.                 u8 j=0;
  31.                 j=Read_W5500_SOCK_1Byte(0,Sn_IR);//读取Socket0中断标志寄存器
  32.                 if(j!=0)
  33.                 Write_W5500_SOCK_1Byte(0,Sn_IR,j);
  34.                 Delay(5);//延时5ms
  35.                 if((j&IR_TIMEOUT) == IR_TIMEOUT)
  36.                 {
  37.                         return FALSE;       
  38.                 }
  39.                 else if(Read_W5500_SOCK_1Byte(0,Sn_DHAR) != 0xff)
  40.                 {
  41.                         Write_W5500_SOCK_1Byte(0,Sn_CR,CLOSE);//关闭Socket
  42.                         return TRUE;                                                       
  43.                 }
  44.         }while(1);
  45. }
老是进到打开不成功,关闭Socket。真郁闷!
weifeng90 发表于 2023-1-16 22:49 来自手机 | 显示全部楼层
先把SPI通信调通,不要一来就直接与网口模块通信。
 楼主| 比神乐 发表于 2023-1-17 08:02 | 显示全部楼层
weifeng90 发表于 2023-1-16 22:49
先把SPI通信调通,不要一来就直接与网口模块通信。

你说的有道理,可是不接网口或者其他器件怎么判断是否调通了呢?

评论

[url=home.php?mod=space&uid=1319046]@天奕[/url] :谢谢!我没有逻辑分析仪·。  发表于 2023-1-17 10:28
逻辑分析仪 抓下数据,对比2个数据就清清楚楚  发表于 2023-1-17 10:25
timerc 发表于 2023-1-17 16:49 | 显示全部楼层

试试读这种有固定值的寄存器,把读取调好,然后再调写入
 楼主| 比神乐 发表于 2023-1-17 19:24 | 显示全部楼层
timerc 发表于 2023-1-17 16:49
试试读这种有固定值的寄存器,把读取调好,然后再调写入

谢谢!现在UDP方式读写寄存器正常了,也可以拼通,就是无法收发数据。
TCP客户端方式成功了。
tabmone 发表于 2023-2-4 19:48 | 显示全部楼层
8位的单片机也支持的吗》              
 楼主| 比神乐 发表于 2023-2-5 13:08 | 显示全部楼层
tabmone 发表于 2023-2-4 19:48
8位的单片机也支持的吗》

支持
phoenixwhite 发表于 2023-2-5 14:17 | 显示全部楼层
可以使用wifi通信的吧。              
 楼主| 比神乐 发表于 2023-2-5 15:51 | 显示全部楼层
phoenixwhite 发表于 2023-2-5 14:17
可以使用wifi通信的吧。

有一块小板子可以实现,不过没试过。
RDS小定 发表于 2023-2-6 08:55 | 显示全部楼层
NBK-EBS003 IOT 扩展板 带WiFi
0719002bd79a91e11741ad40e2dc5872.png

更多介绍,参见页面: https://bbs.21ic.com/icview-3281700-1-1.html
usysm 发表于 2023-2-6 13:50 | 显示全部楼层
使用魔盒可以配置ESP8266的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3535

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部

470

主题

3535

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部