我看了你的程序,发现几个疑问:
1.emac_ini(void)函数少了很多应该设置的寄存器,设置的顺序也很重要的。建议你上官网下示例程序。
2. char *p = (char *)0x0400; 缓冲首指针不应该指向400.这个问题我开始也疑惑了许久。我没用PE做,所以初始化RAM就是400,出现了问题,数据发来我有接收中断,但是以400为首的接收缓冲一点不变!之后将RAM自己指向2000,问题解决。
你用PE免去了自己设置,但是你的指针要指向2000.
3.你好像是用a[]模拟网路数据接收,不确定这样能不能有接收中断。
4.要对接收缓冲和发送缓冲搞清楚。2000之后是2个接收缓冲然后才是发送缓冲。
建议好好看看芯片资料对缓冲设置这一节。 |