STM8S+W500怎么总是读失败呢?

[复制链接]
2193|7
 楼主| taobaofarmer 发表于 2016-5-20 21:53 | 显示全部楼层 |阅读模式
用STM8S的SPI接口控制W5500,硬件是没有问题的,硬件复位W5500之后,写入IP地址、掩码。。。之后,能PING通
说明参数已经成功写入了,问题是读W5500总是死机,下面贴出读代码

void SPI_Send_Byte(u8 wByte)
{
    volatile u8 i;
   
    SPI->DR = wByte;                             //写1个字节数据
    while((SPI->SR & SPI_FLAG_TXE) == 0x00);     //等待发送完毕
      
    while((SPI->SR & SPI_FLAG_RXNE) == 0x00);    //等待收到一个字节数据
    i = SPI->DR;
}

void SPI_Send_Short(u16 wShort)
{
    SPI_Send_Byte((u8)(wShort >>8));
    SPI_Send_Byte((u8)(wShort));
}

//读W5500指定通用寄存器的1个字节数据
u8 Read_W5500_CommonReg_1Byte(u16 reg)
{
    u8 i;

    W5500_SELECT();
    {
        SPI_Send_Short(reg);
        SPI_Send_Byte(COMMON_R | RWB_READ | FDM1);
        
        SPI_Send_Byte(0x00);  //发送读数据脉冲
        
        //等待收到数据
        while(SPI_GetFlagStatus(SPI_FLAG_RXNE) == 0x00);   //?????????总是死在改处
        i = SPI->DR;
    }
    W5500_DESELECT();
       
    return i;
}

上面的代码,程序怎么老是死在?????????处呢,我用这个函数读VERR,就是读W5500的版本信息,最简单的读取动作都读不出来?

评论

我们DM9051试试,网口匹配性更好,Layout布线也更为简洁;支持自适应、自动翻转,支持光口;提供技术支持可以加我微信13823667163  发表于 2018-7-13 17:44
bridgexia 发表于 2017-3-30 15:53 | 显示全部楼层
楼主还在吗,我最近也在弄stm8和5500
szlive 发表于 2018-6-24 17:31 | 显示全部楼层
huguang0218 发表于 2018-7-11 10:45 | 显示全部楼层
STM32F103+W5500比较好用,已经量产!产品稳定可靠!
xinyipcb 发表于 2018-8-28 00:35 | 显示全部楼层
很好的文档,收下了。
 楼主| taobaofarmer 发表于 2019-3-2 14:10 | 显示全部楼层
我已经放弃W5500了
零三翟邢止胃 发表于 2019-3-13 13:27 | 显示全部楼层
如果实在不行,就找卖家提供技术支持,目前有家代理商炜世科技的提供技术支持。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

460

帖子

3

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