在线时间24 小时
UID2035889
注册时间2015-4-29
NXP金币0
该用户从未签到
注册会员

- 积分
- 192
- 最后登录
- 2018-5-7
|

楼主 |
发表于 2015-7-10 15:18:37
|
显示全部楼层
memcpy(Tx_Buffer, "1234567890", 10);
Write_SOCK_Data_Buffer(0, Tx_Buffer, 10);//指定Socket(0~7)发送数据处理,端口0发送23字节数据
/*******************************************************************************
* 函数名 : Write_SOCK_Data_Buffer
* 描述 : 将数据写入W5500的数据发送缓冲区
* 输入 : s:端口号,*dat_ptr:数据保存缓冲区指针,size:待写入数据的长度
* 输出 : 无
* 返回值 : 无
* 说明 : 无
*******************************************************************************/
void Write_SOCK_Data_Buffer(SOCKET s, INT8U *dat_ptr, unsigned short size)
{
unsigned short offset,offset1;
unsigned short i;
offset=Read_W5500_SOCK_2Byte(s,Sn_TX_WR);
offset1=offset;
offset&=(S_TX_SIZE-1);//计算实际的物理地址
SPI_CS_LOW();//置W5500的SCS为低电平
SPI1_Send_Short(offset);//写16位地址
Send_Byte(VDM|RWB_WRITE|(s*0x20+0x10));//写控制字节,N个字节数据长度,写数据,选择端口s的寄存器
if((offset+size)<S_TX_SIZE)//如果最大地址未超过W5500发送缓冲区寄存器的最大地址
{
for(i=0;i<size;i++)//循环写入size个字节数据
{
Send_Byte(*dat_ptr++);//写入一个字节的数据
}
}
SPI_CS_HIGH(); //置W5500的SCS为高电平
offset1+=size;//更新实际物理地址,即下次写待发送数据到发送数据缓冲区的起始地址
Write_W5500_SOCK_2Byte(s, Sn_TX_WR, offset1);
Write_W5500_SOCK_1Byte(s, Sn_CR, SEND);//发送启动发送命令
}
|
|