stm32f103zet6+dm9000ciep,底层驱动问题,用的是原子战舰的netconn tcp客户端的例子改的,网口的灯在闪,但ping不通,读出来的DM9000芯片ID为0x2B2A2928,求各位大神帮我看看哪里有错。。。。附近里有板子的原理图,我的qq是190010191,之所以用原子的程序来改,是因为原子的程序看起来易懂,舒服,条理性强。求高手们在此基础上给点意见。顺利解决的话给最佳答案充200话费当辛苦费,要是觉着少,也可以找我。。。我说到做到。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我不久前也遇到过类似的问题,终于明白硬件评估板还是有价值的,比如你现在遇上的问题,如果你手头有个评估板,至少你可以比较到底是软件问题还是硬件问题,你把人家官方例程拿来下载看看,行不行不是立马知道是哪里的问题了吗
我的应该不是芯片的问题,别人给的例程封装了,下载下去试过又可以。。我的。。。
那块板子的例程试过,可以,用自己照原子的修改了再下载下去就不行。。。最近忙其它的事了。这个一直没有研究。。
晶振哪里有问题了。。FSMC哪里写错了。。麻烦说仔细点
首先,把硬件复位RST引脚断开,最好把这部分代码注释掉。我的加上去就回读取ID不正常,原因不知道为啥。。。
然后将DM9000复位部分的代码
DM9000_WriteReg(DM9000_GPCR,0x01); //第一步:设置GPCR寄存器(0X1E)的bit0为1
DM9000_WriteReg(DM9000_GPR,0); //第二步:设置GPR寄存器(0X1F)的bit1为0,DM9000内部的PHY上电
这两句后面跟上一个延时,我的修改后的代码
void DM9000_Reset(void)
{
DM9000_WriteReg(DM9000_GPCR,0x01); //μúò»2½:éèÖÃGPCR¼Ä′æÆ÷(0X1E)μÄbit0Îa1
DM9000_WriteReg(DM9000_GPR,0); //μú¶t2½:éèÖÃGPR¼Ä′æÆ÷(0X1F)μÄbit1Îa0£¬DM9000Äú2¿μÄHYéÏμç
delay_ms(10);
DM9000_WriteReg(DM9000_NCR,(0x02|NCR_RST)); //μúèy2½:èí¼t¸′λDM9000
do
{
delay_ms(25);
}while(DM9000_ReadReg(DM9000_NCR)&1); //μè′yDM9000èí¸′λíê3é
DM9000_WriteReg(DM9000_NCR,0);
DM9000_WriteReg(DM9000_NCR,(0x02|NCR_RST)); //DM9000μú¶t′Îèí¸′λ
do
{
delay_ms(25);
}while (DM9000_ReadReg(DM9000_NCR)&1);
DM9000_WriteReg(DM9000_NCR,0);
}
你试下行不行
一周热门 更多>