W5500 发送数据不定期卡死 求原因

2019-07-21 03:24发布

我想知道我这种情况发生的原因  问题描述很清楚我  请不要胡乱那些给我网上建议来蹭问题结贴 你可以帮忙顶下谢谢  我查了很多都不符合我这个情况  另外  我想知道的是原因

用W5500发送较小的数据  可以坚持几天都没卡死
但是当我一次性发送大量数据  其实就400B  但是个把小时左右就阻塞在 发送数据(uint16 send(SOCKET s, const uint8 * buf, uint16 len))前读地址那里
截取出来函数
  /* wait to process the command... */
    while( IINCHIP_READ(Sn_CR(s)));


下面是函数原型     


/**
*@brief                从W5500读出一个8位数据
*@param                addrbsb: 写入数据的地址
*@param   data:从写入的地址处读取到的8位数据
*@return        无
*/
uint8 IINCHIP_READ(uint32 addrbsb)
{
    uint8 data = 0;
    iinchip_csoff();
    IINCHIP_SpiSendData( (addrbsb & 0x00FF0000)>>16);
    IINCHIP_SpiSendData( (addrbsb & 0x0000FF00)>> 8);
    IINCHIP_SpiSendData( (addrbsb & 0x000000F8))    ;
    data = IINCHIP_SpiSendData(0x00);
    iinchip_cson();
    return data;
}


这些东西都是官方封装好的库   
我发送数据大小肯定没有溢出定的是2K  而且都发了半小时


另外这个发送消息阻塞属于首次阻塞地方  就算我强制跳过  它在其他功能中一旦判断这个地址位还是无法过去   
这个就像中断标志位一样  我该怎么清除掉呢   这是什么原因造成的呢   
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。