ALIENTEK STM32F429开发板的LWIP TCP例程中,这样编写
//读取PHY寄存器值
u32 LAN8720_ReadPHY(u16 reg)
{
u32 regval;
HAL_ETH_ReadPHYRegister(Ð_Handler,reg,®val);
return regval;
}
//向LAN8720指定寄存器写入值
//reg:要写入的寄存器
//value:要写入的值
void LAN8720_WritePHY(u16 reg,u16 value)
{
u32 temp = value;
HAL_ETH_ReadPHYRegister(Ð_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 入口参数基本是一样的,为什么不匹配?
有没有知道的朋友,不吝赐教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
两个lan8720网线直连 初始化不通过的问题
通过读取某个寄存器可以得到网线是否连接,但是读这个寄存器必须是在8720初始化成功之后才可以读,但是两个lan8720 初始化的时候一直在库函数里等待,出不来,有什么好的解决方法吗
一周热门 更多>