Microchip
直播中

张秀荣

8年用户 236经验值
私信 关注
[问答]

长时间PHY操作错误后,pic32以太网未重新连接怎么办

H/W:Pic32以太网启动器套件2HARMony1.6和MplabX 3.1softer正在运行:tcpip clilent、httpserver、nvm驱动程序、spi、DMA/ADC驱动程序我的问题:我的程序都运行良好。我给电路板供电。然后我插入EHTNET网络电缆。这个设备被分配了一个IP,我可以在微芯片发现工具(我也可以连接到网络服务器)中看到这一点。控制台说:PHY操作错误:-6orPHY操作错误:-1其他人也有这个问题:太奇怪了,我可以随心所欲地插入和输出以太网电缆,一切正常。只有当我把电源插上好一阵子再插上时,我才会得到这个错误……好像有些东西超时了……有什么主意吗??

回帖(6)

陈晨

2020-5-12 10:11:11
什么版本的Harmoney?
举报

杨兰兰

2020-5-12 10:29:20
和谐1.6MPLABX 3.1
举报

杨兰兰

2020-5-12 10:47:33
我仍然有这个问题。但是我已经隔离了它更多。问题在于我对Microchip给我们的通用Tcp/ip客户端示例的编辑。默认代码等待在控制台中输入Web地址。然后连接到网页并从中读取。现有微芯片代码片段:case APP_TCPIP_WAITING_._COMMAND:{SYS_CMD_READY_TO_READ();//等待您输入网络地址(APP_URL_Buffer[0]!='') {TCPIP_DNS_RESULT结果;如果(_APP_ParseUrl(APP_URL_Buffer,&app_tcpData.host, &app_tcpData.path, &app_tcpData.port)){etc.....这些都正常工作。因此我运行一个系统计时器来添加新URL,每隔20秒添加一个新数据。参见下面的APP_TCPIP_WAITING_._COMMAND:{//注释//SYS_CMD_READY_TO_READ();//运行20秒计时(SYS_TMR_TickCountGet()-startTick>=SYS_TMR_Tick.FrequencyGet()*(20ul)){startTick=SYS TiYS TiYS_TMR_TMR_TMR_READR_READR_Get(*(20ul))。TykCuffTGET();/ /创建我将发送服务器的新URL。附加到URLsprintf的数据(Appthurl缓冲区,%s%s%s%s),“http://pp.MyServer .com”,“/APP.php”,“?”因此,我的URL看起来是这样的:服务器然后接收这个调用,解析出data1和data2这一切都很好,只要我们总是连接到服务器……但是,如果我把电源插到路由器(或者插掉以太网电缆)上一会儿(30-40分钟)并重新插入,有50%的可能性,软件将进入一个奇怪的状态,将不会得到一个ip地址。我需要硬重置设备,让它再次工作。这是我的问题。我怎样才能得到数据到我的服务器?我走这条路对吗?是我的20秒计时器代码,做了什么可怕的事情吗?请帮助…
举报

罗宏达

2020-5-12 10:58:57
那么你是在阻止主回路吗?大多数和声示例使用一个“App.c”文件来创建从主循环调用的App任务状态机。主循环也调用TCPIP任务。如果您在app.c中阻塞,那么您可能正在停止对应用程序的调用,其他任务,例如TCPIP tak,需要经常调用。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分