【修复】PHY 状态查询过程中的 bug
This commit is contained in:
parent
cf7052f6b7
commit
8710b1fd06
|
@ -468,32 +468,40 @@ static void phy_monitor_thread_entry(void *parameter)
|
|||
|
||||
while (1)
|
||||
{
|
||||
HAL_ETH_ReadPHYRegister(&EthHandle, PHY_BASIC_STATUS_REG, (uint32_t *)&status);
|
||||
LOG_D("PHY BASIC STATUS REG:0x%04X", status);
|
||||
|
||||
phy_speed_new = 0;
|
||||
|
||||
if (status & (PHY_AUTONEGO_COMPLETE_MASK | PHY_LINKED_STATUS_MASK))
|
||||
if(HAL_ETH_ReadPHYRegister(&EthHandle, PHY_BASIC_STATUS_REG, (uint32_t *)&status) == HAL_OK)
|
||||
{
|
||||
rt_uint32_t SR;
|
||||
|
||||
phy_speed_new = PHY_LINK_MASK;
|
||||
|
||||
SR = HAL_ETH_ReadPHYRegister(&EthHandle, PHY_Status_REG, (uint32_t *)&SR);
|
||||
LOG_D("PHY Control/Status REG:0x%04X ", SR);
|
||||
|
||||
if (SR & PHY_100M_MASK)
|
||||
LOG_D("PHY BASIC STATUS REG:0x%04X", status);
|
||||
|
||||
if (status & (PHY_AUTONEGO_COMPLETE_MASK | PHY_LINKED_STATUS_MASK))
|
||||
{
|
||||
phy_speed_new |= PHY_100M_MASK;
|
||||
}
|
||||
else if (SR & PHY_10M_MASK)
|
||||
{
|
||||
phy_speed_new |= PHY_10M_MASK;
|
||||
}
|
||||
rt_uint32_t SR;
|
||||
|
||||
if (SR & PHY_FULL_DUPLEX_MASK)
|
||||
{
|
||||
phy_speed_new |= PHY_FULL_DUPLEX_MASK;
|
||||
phy_speed_new = PHY_LINK_MASK;
|
||||
|
||||
if(HAL_ETH_ReadPHYRegister(&EthHandle, PHY_Status_REG, (uint32_t *)&SR) == HAL_OK)
|
||||
{
|
||||
LOG_D("PHY Control/Status REG:0x%04X ", SR);
|
||||
|
||||
if (SR & PHY_100M_MASK)
|
||||
{
|
||||
phy_speed_new |= PHY_100M_MASK;
|
||||
}
|
||||
else if (SR & PHY_10M_MASK)
|
||||
{
|
||||
phy_speed_new |= PHY_10M_MASK;
|
||||
}
|
||||
|
||||
if (SR & PHY_FULL_DUPLEX_MASK)
|
||||
{
|
||||
phy_speed_new |= PHY_FULL_DUPLEX_MASK;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_D("PHY Control/Status REG read error.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue