summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSummerGift <[email protected]>2019-06-10 10:05:11 +0800
committerSummerGift <[email protected]>2019-06-10 15:07:45 +0800
commit8710b1fd06898920c3a61baaa69efd0737afd5d8 (patch)
treeeb42e7418d8a94079bf9800d2db85b06b35b4512
parentcf7052f6b7502c20f28eae5b9c096978c7f3a98f (diff)
【修复】PHY 状态查询过程中的 bug
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_eth.c46
1 files changed, 27 insertions, 19 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_eth.c b/bsp/stm32/libraries/HAL_Drivers/drv_eth.c
index 148a03f45b..b9b584ade9 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_eth.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_eth.c
@@ -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;
+ LOG_D("PHY BASIC STATUS REG:0x%04X", status);
+
+ if (status & (PHY_AUTONEGO_COMPLETE_MASK | PHY_LINKED_STATUS_MASK))
+ {
+ rt_uint32_t SR;
- phy_speed_new = PHY_LINK_MASK;
+ 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(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_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;
+ if (SR & PHY_FULL_DUPLEX_MASK)
+ {
+ phy_speed_new |= PHY_FULL_DUPLEX_MASK;
+ }
+ }
+ else
+ {
+ LOG_D("PHY Control/Status REG read error.");
+ }
}
}