}
//通过spi向指定地址寄存器写n个字节数据
uint8 w55_WritenByte(uint16 reg, uint8 *dat_ptr, uint16 size)
{
unsigned short i;
GPIO_ResetBits(W5500_SCS_PORT, W5500_SCS);
SPI_Send_Short(reg);
SPI_Send_Byte(VDM|RWB_WRITE|COMMON_R);
for(i=0;i<size;i++)
{
SPI_Send_Byte(*dat_ptr++);
}
GPIO_SetBits(W5500_SCS_PORT, W5500_SCS);
return 1;
}
//读取W5500指定地址1Byte数据
uint8 w55_Read1Byte(uint16 reg)
{
unsigned char i;
GPIO_ResetBits(W5500_SCS_PORT, W5500_SCS);
SPI_Send_Short(reg);
SPI_Send_Byte(FDM1|RWB_READ|COMMON_R);
i=SPI_Recv_Byte();
SPI_Send_Byte(0x00);
i=SPI_Recv_Byte();
GPIO_SetBits(W5500_SCS_PORT, W5500_SCS);
return i;
}
///
//华丽的分割线
///
//单字节配置socket
uint8 w55_WriteSock1Byte(SOCKET s, uint16 reg, uint8 dat)
{
GPIO_ResetBits(W5500_SCS_PORT, W5500_SCS);
SPI_Send_Short(reg);
SPI_Send_Byte(FDM1|RWB_WRITE|(s*0x20+0x08));
SPI_Send_Byte(dat);
GPIO_SetBits(W5500_SCS_PORT, W5500_SCS);
return 1;
}
//两字节配置socket
uint8 w55_WriteSock2Byte(SOCKET s, uint16 reg, uint16 dat)
{
GPIO_ResetBits(W5500_SCS_PORT, W5500_SCS);
SPI_Send_Short(reg);
SPI_Send_Byte(FDM2|RWB_WRITE|(s*0x20+0x08));
SPI_Send_Short(dat);
GPIO_SetBits(W5500_SCS_PORT, W5500_SCS);
return 1;
}
//四字节配置socket
uint8 w55_WriteSock4Byte(SOCKET s, uint16 reg, uint8 *dat_ptr)
{
GPIO_ResetBits(W5500_SCS_PORT, W5500_SCS);//ÖÃW5500µÄSCSΪµÍµçƽ
SPI_Send_Short(reg);
SPI_Send_Byte(FDM4|RWB_WRITE|(s*0x20+0x08));
SPI_Send_Byte(*dat_ptr++);
SPI_Send_Byte(*dat_ptr++);
SPI_Send_Byte(*dat_ptr++);
SPI_Send_Byte(*dat_ptr++);
GPIO_SetBits(W5500_SCS_PORT, W5500_SCS);
return 1;
}
//读取Socket1字节信息
uint8 w55_ReadSock1Byte(SOCKET s, uint16 reg)
{
unsigned char i;
GPIO_ResetBits(W5500_SCS_PORT, W5500_SCS);
SPI_Send_Short(reg);
SPI_Send_Byte(FDM1|RWB_READ|(s*0x20+0x08));
//i=SPI_I2S_ReceiveData(W5500_SPI);
i=SPI_Recv_Byte();
SPI_Send_Byte(0x00);
//i=SPI_I2S_ReceiveData(W5500_