用官网的开发板插拔网线常常拔掉网线LINK灯常亮,PHYStat 状态还是在线状态,这个问题改怎么解决
您好,您可以参考这个代码,来看PHYstat的状态。
UINT8 GetPhyLinkState(void)
{
UINT16 phy_reg = 0;
phy_reg = ReadPHYRegX(PHY_BMSR); //读取PHY状态寄存器
if(phy_reg&0x04)
{
//printf("link connect ok....\r\n");
return 1;
}
//printf("link disconnect ok....\r\n");
return 0;
}
static UINT16 ReadPHYRegX(UINT8 reg_add)
{
UINT8 reg_op=0;
UINT16 read_reg_val = 0xffff;
reg_op = reg_add&RB_ETH_MIREGADR_MIRDL;
R8_ETH_MIREGADR = RB_ETH_MIREGADR_MIIWR|reg_op;
read_reg_val = R16_ETH_MIRD;
return read_reg_val;
}
您也可以发送邮件至mj@wch.cn,这边可以提供您协议栈去处理这个网口灯的问题。