【踩坑笔记】STM32 HAL库+泥人W5500模块

1.HAL库与标准库转换

泥人提供的模块收发程序在这里插入图片描述
【踩坑笔记】STM32 HAL库+泥人W5500模块_第1张图片
HAL库下的收发(这里只提供部分接口,其它同样改发):
【踩坑笔记】STM32 HAL库+泥人W5500模块_第2张图片
【踩坑笔记】STM32 HAL库+泥人W5500模块_第3张图片
下边这条是标准库自带的函数,这里只用来和HAL库转换
【踩坑笔记】STM32 HAL库+泥人W5500模块_第4张图片
改完之后,想验证自己的驱动改好没有,可以读取版本寄存器VERSION(0x0039),返回值为0x04,如果不是,说明驱动没改好。

2.写入IP地址等,读出返回值为00

泥人提供的例程中,是FDM和VDM数据混用的,即一会儿用固定长度模式、一会儿用不定长模式。这里就存在一个问题——什么时候数据发送结束。
看一下数据手册:
【踩坑笔记】STM32 HAL库+泥人W5500模块_第5张图片
FDM模式下不要求CS信号,只要发数据的时候是拉低就行;
【踩坑笔记】STM32 HAL库+泥人W5500模块_第6张图片
VDM模式下,片选拉低表示要开始发送数据,片选拉高表示接收结束。但是我在使用过程中一直将片选拉低了,因此,当使用VDM时,W5500认为我数据还没发完,故一直在等待接收、读取数据返回为00。

你可能感兴趣的:(stm32,单片机,嵌入式硬件)