WCH沁恒单片机
直播中

郑成枝

7年用户 1340经验值
私信 关注
[问答]

CH579 link的状态怎么读取呢?

CH579的pdf中 关于网络的Link变化的寄存器只提到中断使能寄存器(R8_ETH_EIE),中断标志寄存器(R8_ETH_EIR),
RB_ETH_EIR_LINKIF RW1 Link 变化标志
只有link变化的中断标志寄存器、中断使能寄存器,却没有link状态的寄存器,link的状态怎么读取呢?
另外有没有不使用网络库的网络驱动例程呢?
  

回帖(2)

孙奕

2022-9-27 09:50:44
PHY寄存器相应说明暂时未对外开放,目前库驱动正在更新,后续会提供相应说明。目前读link状态提供了函数接口CH57x_GetPHYLinkStatus();

举报

李傈吏

2022-9-27 09:50:57
UINT8 GetPhyLinkState(void)
{
UINT16  phy_reg = 0;
phy_reg = ReadPHYRegX(PHY_BMSR);                                         //读取PHY状态寄存器
if(phy_reg&0x04)
{
//printf("link connect ok....rn");
return 1;
}
//printf("link disconnect ok....rn");
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;
}
您好,您可以参考这段代码。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分