на пинги стала откликаться. шлю прогой netCat данные по UDP, но ничего не принимаю.
шлю так:
-u 192.168.30.1 3001 (тут enter нажимаю)
dffgdfgdr (любой текст)
так же проделываю это с прогой COM Port Data Emulator
там выбираю client mode, указываю порт, IP, случайные данные.
почему-то просто ничего не считываю в переменную в ф-ии IINCHIP_READ();
Код
uint8_t IINCHIP_READ(uint16_t addr)
{
uint8_t temp=0;
off (WIZ_SCS);
Delay_ms(1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,0x0f);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,((addr & 0xFF00) >> 8));
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,(addr & 0x00FF));
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,0xff);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
Usart1_Send_String( (char *) temp );
Usart1_Send_String("\r\n");
Delay_ms(1);
on (WIZ_SCS);
return temp;
}
/********************************************************************************
*****************/
/********************************************************************************
*****************/
void WIZnet_main (void)
{
WIZ_Init();
uint8_t recv_msg[8];
// режим сервера
socket (1, Sn_MR_UDP, 3001, 0); //for socket: number, protokol, source port, option ???
listen (1); //socket number
while (1){
if (IINCHIP_READ (Sn_SR(1))== SOCK_ESTABLISHED) { //Sn_SR статус регистр
Usart1_Send_String("SOCK_ESTABLISHED \r\n");
recv (1, &recv_msg[0], 8); //socket, передаю адрес массива- куда читать, и длина данных
disconnect (1);
close (1);
}
Usart1_Send_String( (char *)recv_msg );
}
}
{
uint8_t temp=0;
off (WIZ_SCS);
Delay_ms(1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,0x0f);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,((addr & 0xFF00) >> 8));
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,(addr & 0x00FF));
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
SPI_I2S_SendData (SPI1,0xff);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
temp=SPI_I2S_ReceiveData(SPI1);
Usart1_Send_String( (char *) temp );
Usart1_Send_String("\r\n");
Delay_ms(1);
on (WIZ_SCS);
return temp;
}
/********************************************************************************
*****************/
/********************************************************************************
*****************/
void WIZnet_main (void)
{
WIZ_Init();
uint8_t recv_msg[8];
// режим сервера
socket (1, Sn_MR_UDP, 3001, 0); //for socket: number, protokol, source port, option ???
listen (1); //socket number
while (1){
if (IINCHIP_READ (Sn_SR(1))== SOCK_ESTABLISHED) { //Sn_SR статус регистр
Usart1_Send_String("SOCK_ESTABLISHED \r\n");
recv (1, &recv_msg[0], 8); //socket, передаю адрес массива- куда читать, и длина данных
disconnect (1);
close (1);
}
Usart1_Send_String( (char *)recv_msg );
}
}