[技术问答]

新定义板子SPI方式驱动W5500的问题

[复制链接]
208|12
手机看帖
扫描二维码
随时随地手机跟帖
比神乐|  楼主 | 2023-1-16 20:27 | 显示全部楼层 |阅读模式
我买了个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。真郁闷!

使用特权

评论回复
weifeng90| | 2023-1-16 22:49 | 显示全部楼层
先把SPI通信调通,不要一来就直接与网口模块通信。

使用特权

评论回复
比神乐|  楼主 | 2023-1-17 08:02 | 显示全部楼层
weifeng90 发表于 2023-1-16 22:49
先把SPI通信调通,不要一来就直接与网口模块通信。

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

使用特权

评论回复
评论
比神乐 2023-1-17 10:28 回复TA
@天奕 :谢谢!我没有逻辑分析仪·。 
天奕 2023-1-17 10:25 回复TA
逻辑分析仪 抓下数据,对比2个数据就清清楚楚 
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的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则