|
51 | 51 | //*****************************************************************************
|
52 | 52 | #include "socket.h"
|
53 | 53 |
|
| 54 | +extern void HAL_Delay(uint32_t); |
| 55 | + |
54 | 56 | #define SOCK_ANY_PORT_NUM 0xC000;
|
55 | 57 |
|
56 | 58 | static uint16_t sock_any_port = SOCK_ANY_PORT_NUM;
|
@@ -225,6 +227,7 @@ int8_t connect(uint8_t sn, uint8_t * addr, uint16_t port)
|
225 | 227 | #endif
|
226 | 228 | return SOCKERR_TIMEOUT;
|
227 | 229 | }
|
| 230 | + HAL_Delay(1); |
228 | 231 | }
|
229 | 232 | #if _WIZCHIP_ == 5200 // for W5200 ARP errata
|
230 | 233 | setSUBR((uint8_t*)"\x00\x00\x00\x00");
|
@@ -345,6 +348,7 @@ int32_t recv(uint8_t sn, uint8_t * buf, uint16_t len)
|
345 | 348 | }
|
346 | 349 | if((sock_io_mode & (1<<sn)) && (recvsize == 0)) return SOCK_BUSY;
|
347 | 350 | if(recvsize != 0) break;
|
| 351 | + HAL_Delay(1); |
348 | 352 | };
|
349 | 353 | if(recvsize < len) len = recvsize;
|
350 | 354 | wiz_recv_data(sn, buf, len);
|
@@ -392,6 +396,7 @@ int32_t sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t
|
392 | 396 | if(getSn_SR(sn) == SOCK_CLOSED) return SOCKERR_SOCKCLOSED;
|
393 | 397 | if( (sock_io_mode & (1<<sn)) && (len > freesize) ) return SOCK_BUSY;
|
394 | 398 | if(len <= freesize) break;
|
| 399 | + HAL_Delay(1); |
395 | 400 | };
|
396 | 401 | wiz_send_data(sn, buf, len);
|
397 | 402 |
|
@@ -421,6 +426,7 @@ int32_t sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t
|
421 | 426 | return SOCKERR_TIMEOUT;
|
422 | 427 | }
|
423 | 428 | ////////////
|
| 429 | + HAL_Delay(1); |
424 | 430 | }
|
425 | 431 | #if _WIZCHIP_ == 5200 // for W5200 ARP errata
|
426 | 432 | setSUBR((uint8_t*)"\x00\x00\x00\x00");
|
|
0 commit comments