关于开发板LAN8720_WritePHY函数的问题

2019-07-20 08:12发布

ALIENTEK STM32F429开发板的LWIP TCP例程中,这样编写

//读取PHY寄存器值
u32 LAN8720_ReadPHY(u16 reg)
{
    u32 regval;
    HAL_ETH_ReadPHYRegister(&ETH_Handler,reg,&regval);
    return regval;
}
//向LAN8720指定寄存器写入值
//reg:要写入的寄存器
//value:要写入的值
void LAN8720_WritePHY(u16 reg,u16 value)
{
    u32 temp = value;
    HAL_ETH_ReadPHYRegister(&ETH_Handler,reg,&temp);
}



这是读写PHY芯片寄存器的程序段,可以看出,只是对HAL库做了简单封装
问题:
1、问什么读和写都是调用的 HAL_ETH_ReadPHYRegister,HAL库中明明有 HAL_ETH_WritePHYRegister,这样做的好处是什么?
2、我试着将void LAN8720_WritePHY中的 HAL_ETH_ReadPHYRegister改为HAL_ETH_WritePHYRegister,却出现了参数不匹配的问题
     argument of type "u32 *" is incompatible with parameter of type "uint32_t"
    这个就不能理解了,HAL_ETH_ReadPHYRegister 和 HAL_ETH_WritePHYRegister 入口参数基本是一样的,为什么不匹配?


有没有知道的朋友,不吝赐教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。