打印
[技术问答]

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

[复制链接]
733|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我买了个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 | 只看该作者

试试读这种有固定值的寄存器,把读取调好,然后再调写入

使用特权

评论回复
5
比神乐|  楼主 | 2023-1-17 19:24 | 只看该作者
timerc 发表于 2023-1-17 16:49
试试读这种有固定值的寄存器,把读取调好,然后再调写入

谢谢!现在UDP方式读写寄存器正常了,也可以拼通,就是无法收发数据。
TCP客户端方式成功了。

使用特权

评论回复
6
tabmone| | 2023-2-4 19:48 | 只看该作者
8位的单片机也支持的吗》              

使用特权

评论回复
7
比神乐|  楼主 | 2023-2-5 13:08 | 只看该作者
tabmone 发表于 2023-2-4 19:48
8位的单片机也支持的吗》

支持

使用特权

评论回复
8
phoenixwhite| | 2023-2-5 14:17 | 只看该作者
可以使用wifi通信的吧。              

使用特权

评论回复
9
比神乐|  楼主 | 2023-2-5 15:51 | 只看该作者
phoenixwhite 发表于 2023-2-5 14:17
可以使用wifi通信的吧。

有一块小板子可以实现,不过没试过。

使用特权

评论回复
10
RDS小定| | 2023-2-6 08:55 | 只看该作者
NBK-EBS003 IOT 扩展板 带WiFi


更多介绍,参见页面: https://bbs.21ic.com/icview-3281700-1-1.html

使用特权

评论回复
11
usysm| | 2023-2-6 13:50 | 只看该作者
使用魔盒可以配置ESP8266的。

使用特权

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

本版积分规则

438

主题

3451

帖子

7

粉丝