搜索
bottom↓
回复: 5

enc28j60芯片,想获取PHSTAT2的链路LSTAT状态位

[复制链接]

出0入0汤圆

发表于 2014-2-27 12:32:35 | 显示全部楼层 |阅读模式
enc28j60芯片,想获取PHSTAT2寄存器的LSTAT链路状态位,当链路状态变化时想获取这个标志位,看手册PHSTAT2的LSTAT可以表明链路状态,由此产生在程序运行后试着读取这个位,即网线插上后这位会置1.但是貌似木有读出来还是怎么个情况,大侠?

u16_t  LinkState_Phstat2=0;
u8_t    Phstat2_Lstat=0;
u16_t LinkState_Check()//
{
        u16_t mydat;
        mydat=enc28j60_read_phyreg(PHSTAT2);//此函数是驱动里面写好的函数,直接调用了
        return mydat;
}
        LinkState_Phstat2=LinkState_Check();
        Phstat2_Lstat=(LinkState_Phstat2>>8)&0x04;//据手册LSTAT位于bit10

if(Phstat2_Lstat!=0)//说明链路状态激活
{
led1=0;        //灯至今未看到亮起来
}
     

出0入0汤圆

 楼主| 发表于 2014-2-27 13:43:19 | 显示全部楼层
自己先占个位

出0入0汤圆

 楼主| 发表于 2014-2-27 15:04:45 | 显示全部楼层
顶,不然沉下去了

出0入0汤圆

 楼主| 发表于 2014-3-1 13:13:35 | 显示全部楼层
问题解决啦。。是驱动的问题,据手册上P21读PHY寄存器第四条应在读完寄存器后清零MIIRD位,原来的驱动函数里面在这个地方出错。读完后添加为 enc28j60Write(MICMD, 0x00);//ly 据手册P21 读完后清零MIIRD   即可纠正

出0入0汤圆

发表于 2014-6-28 16:48:37 | 显示全部楼层
最近发现断开网线后,过一段时间(10分钟)。再接上网线,PHSTAT2寄存器的LSTAT链路状态位不会置1。搞不清是什么原因。

出0入0汤圆

 楼主| 发表于 2014-7-8 18:31:27 | 显示全部楼层
wnc146 发表于 2014-6-28 16:48
最近发现断开网线后,过一段时间(10分钟)。再接上网线,PHSTAT2寄存器的LSTAT链路状态位不会置1。搞不清 ...

看看是不是我四楼回答的问题。没有清零
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-1 17:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表