用stm32f407 + W5500 一直无法ping通

2019-07-20 12:00发布

用stm32f407 + W5500 一直无法ping通(用F103跑得正常,移植到407就不行了),新的IP无法写到w5500里去,好像SPI通信出问题,但一直找不出原因,谁有例程,能发来参考下,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
Jackwu
1楼-- · 2019-07-20 15:15
原程序在F103上有一个发送1字节函数:
void SPI1_Send_Byte(unsigned char dat)
{                                          
    while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}
       
        SPI_I2S_SendData(SPI1, TxData);                                     
}
现改为像原子哥的读写形式就能ping通了,如下所示:但在F103上就可以正常运行,为什么在F407就不可以呢?这点还是不明白:
u16  SPI1_Send_Byte(unsigned char dat)
{                                          
    while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}
       
        SPI_I2S_SendData(SPI1, TxData);
    while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET){;}

        return SPI_I2S_ReceiveData(SPI1);                                    
}
Jackwu
2楼-- · 2019-07-20 20:13
令人奇怪的是,换成另一路通信口SPI2来做,又ping不通了,不知SPI2跟SPI1又有什么不一样的地方??真郁闷啊
正点原子
3楼-- · 2019-07-21 00:02
 精彩回答 2  元偷偷看……
Jackwu
4楼-- · 2019-07-21 03:09
 精彩回答 2  元偷偷看……
WISIOE2016
5楼-- · 2019-07-21 06:09
你要先检查SPI通信是否正常,再找代码问题。确保SPI读写操作是正常。

WIZnet W5500代理商深圳炜世科技与WIZnet,2017年9月23日在深圳携手举办“物联网通信协议详解与实践”免费培训课,第一期主题TCP/IP协议基础和TCP、UDP的实现。
WIZnet资深工程师陈海峰博士亲自授课,机会难得,报名方式【姓名+公司名称+手机号+QQ】发送到邮箱support@wisioe.com,邮件收到后将会电话或者邮件形式通知 psb.jpg

一周热门 更多>