打印

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

[复制链接]
1358|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的版本信息,最简单的读取动作都读不出来?

相关帖子

沙发
bridgexia| | 2017-3-30 15:53 | 只看该作者
楼主还在吗,我最近也在弄stm8和5500

使用特权

评论回复
板凳
szlive| | 2018-6-24 17:31 | 只看该作者

使用特权

评论回复
地板
huguang0218| | 2018-7-11 10:45 | 只看该作者
STM32F103+W5500比较好用,已经量产!产品稳定可靠!

使用特权

评论回复
5
xinyipcb| | 2018-8-28 00:35 | 只看该作者
很好的文档,收下了。

使用特权

评论回复
6
taobaofarmer|  楼主 | 2019-3-2 14:10 | 只看该作者
我已经放弃W5500了

使用特权

评论回复
7
零三翟邢止胃| | 2019-3-13 13:27 | 只看该作者
如果实在不行,就找卖家提供技术支持,目前有家代理商炜世科技的提供技术支持。

使用特权

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

本版积分规则

71

主题

460

帖子

3

粉丝