我想知道我这种情况发生的原因 问题描述很清楚我 请不要胡乱那些给我网上建议来蹭问题结贴 你可以帮忙顶下谢谢 我查了很多都不符合我这个情况 另外 我想知道的是原因
用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 而且都发了半小时
另外这个发送消息阻塞属于首次阻塞地方 就算我强制跳过 它在其他功能中一旦判断这个地址位还是无法过去
这个就像中断标志位一样 我该怎么清除掉呢 这是什么原因造成的呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢
一周热门 更多>