在编程时候,出现返回函数字节数不对,后来发现返回值出现问题了,再次记录一下!
在使用函数返回值,语句return时候需要注意
return len+2;和 return (len+2);区别
return len+2; 返回结果是len , +2的值,并不返回,这个语句是先返回后+2;
return (len+2);是先 (len+2),再把结果返回。
下面是函数代码,发送数组中增加帧头、CRC和帧尾。
/**
*@brief 测试程序
*@param uint8_t *buf 数据,传地址
uint16_t *len 接收数据字节数,传地址
*@return 返回数据长度
*/
uint16_t w5500_sndtest(uint8_t *buf,uint16_t len)
{
uint16_t i;
buf[0] = SEND_HEAD; //帧头
for(i=1;i<len;i++)
{
buf[i] = i;
}
buf[len] = crc_usecheck(buf,len ); //crc
buf[len+1] = SEND_END; //帧尾
return (len+2);
}