关于开发板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 入口参数基本是一样的,为什么不匹配?


有没有知道的朋友,不吝赐教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
taizonglai
1楼-- · 2019-07-20 11:19
 精彩回答 2  元偷偷看……
liminduan
2楼-- · 2019-07-20 13:04
谢谢大家
hi我歌月徘徊
3楼-- · 2019-07-20 16:01
zuozhongkai 发表于 2018-5-7 15:10
文档写错了,应该用HAL_ETH_WritePHYRegister,改成下面的

两个lan8720网线直连 初始化不通过的问题
通过读取某个寄存器可以得到网线是否连接,但是读这个寄存器必须是在8720初始化成功之后才可以读,但是两个lan8720 初始化的时候一直在库函数里等待,出不来,有什么好的解决方法吗
taizonglai
4楼-- · 2019-07-20 18:21
 精彩回答 2  元偷偷看……

一周热门 更多>