|
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