|
本帖最后由 蜗牛蜗牛 于 2018-11-22 09:56 编辑
最近做个一个东西 ,stmf407 芯片,网络用的LAN8720A,电路图也是参照正点原子的,历程也是,但是问题是:初始化时候必须插网线,不插网线初始化就会失败,
由于这是第一次做网口,问的的是:
1.lan8720A初始化必须插网线吗?(具体初始化网络还不是太懂)
2.st官方的库驱动是不是有问题,里面有个阻塞初始化的地方.
3.由于是没有上系统,所以这个阻塞初始化方式很要命,有没有不阻塞的初始化方式,
具体阻塞地方是:
ETH_Init会阻塞,
rval=ETH_Init(Ð_InitStructure,LAN8720_PHY_ADDRESS); //配置ETH
官方库2个等待超时
/* We wait for linked status... */
do
{
timeout++;
} while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_Linked_Status) && (timeout < PHY_READ_TO));
/* Wait until the auto-negotiation will be completed */
do
{
timeout++;
} while (!(ETH_ReadPHYRegister(PHYAddress, PHY_BSR) & PHY_AutoNego_Complete) && (timeout < (uint32_t)PHY_READ_TO));
,我将这2个地方[]屏蔽以后发现,插入网口 初始化不正常,插上网口初始化也不正常,
网络用的固定 iP 没有用动态协商LWIP_DHCP
源码是正点原子的,
原理图也是 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|