关于ENC28J60发送数据的问题
小弟最近在做一个项目,用STC单片机+ENC28J60网络芯片进行与PC的通信,采用uIP协议栈,现在通过串口助手发数据,然后网络调试助手可以收到数据,同样用网络调试助手...
小弟最近在做一个项目,用STC单片机+ENC28J60网络芯片进行与PC的通信,采用uIP协议栈,现在通过串口助手发数据,然后网络调试助手可以收到数据,同样用网络调试助手发数据,串口助手也可以收到数据,但是有一个问题就是假如用串口调试助手不断地发送数据,发到42K字节后单片机会卡死,需要重启后才可以继续发送,同样网络调试助手给单片机发数据,发送大约6K的字节也就会卡死,也同样需要重启才可以继续传输,现在我找不出来问题所在了,脑袋有点大了,希望做过这个东西的你们可以提一些建议,本人不甚感激
展开
展开全部
1. 首先ENC28J60内的缓冲是有限的,总共8KB左右的缓冲,如果数据传输过快,可能会造成ENC28J60缓冲错误,如果你的代码里没有对ENC28J60发生错误的情况进行处理,很可能造成ENC28J60无法从错误中恢复,造成ENC28J60死掉,从而网口无法收发数据。
2. 我认为,UIP结构性较差,如果移植不好的话很容易造成问题,所以也可能是51死掉了
3. 所以我觉得你应该先确认是哪里导致的错误发生,是51死掉了,还是ENC28J60挂掉了,这个应该很简单,可以让STC控制串口定时向外发字符或控制IO口输出方波证明51的死活。如果51死了,就找UIP和单片机程序的问题,如果是ENC28J60的问题,那就啃一下datasheet吧。
2. 我认为,UIP结构性较差,如果移植不好的话很容易造成问题,所以也可能是51死掉了
3. 所以我觉得你应该先确认是哪里导致的错误发生,是51死掉了,还是ENC28J60挂掉了,这个应该很简单,可以让STC控制串口定时向外发字符或控制IO口输出方波证明51的死活。如果51死了,就找UIP和单片机程序的问题,如果是ENC28J60的问题,那就啃一下datasheet吧。
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询