正点原子历程LAN8720A 初始化,必须插上网线,否则失败解决方案
本帖最后由 蜗牛蜗牛 于 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
源码是正点原子的,
原理图也是 本帖最后由 KongQuan 于 2018-11-22 09:57 编辑
https://blog.csdn.net/xukao5671927/article/details/77765464
按这个修改试试.
注:搜索到的,以前也遇到这个问题,要修改lwIP解决的。 检测到插入网线后 重新初始化。不需要屏蔽。 KongQuan 发表于 2018-11-22 09:56
https://blog.csdn.net/xukao5671927/article/details/77765464
按这个修改试试.
注:搜索到的,以前也遇到 ...
我试试谢谢{:smile:} miaoguoqiang 发表于 2018-11-22 09:56
检测到插入网线后 重新初始化。不需要屏蔽。
没有用操作系统 ,这个阻塞时间有点长, 没遇到过!!!!!!!!!!!!!! 蜗牛蜗牛 发表于 2018-11-22 09:59
没有用操作系统 ,这个阻塞时间有点长,
(引用自5楼)
之前这个问题怎么解决的,遇见和你一样的问题
页:
[1]