首先,你需要确认一下你所使用的STM32到底有没有FSMC/FMC 这个硬件外设,在STM32 64PIN以及更小封装的芯片中是不含有FSMC、FMC的。
其次,无论你所使用的STM32有没有这个硬件外设,你都需要很清楚W5300的并行接口时序,因为只要你了解了它的时序,那么就是可以N多种方式来实现(包含硬件的FMC、FSMC或者软件模拟)。
最后,提供一些互联网上的例子供你参考,不一定每一个都是有作用的,但是只要花两天的时间把这个功能实现了,以后你就会茅塞顿开。
1.W5300英文数据手册: 建议还是看看英文版本的
2.一个16bit访问的驱动程序.
举个简单的API函数的源代码
uint16 getMR(void)
{
return *((vint16*)MR);
}
注意:W5300是big-endian大端访问,STM32的内存都是按照little-endian小端访问的。 |