其他分享
首页 > 其他分享> > W5500开发笔记 | 01- W5500 Socket API的说明

W5500开发笔记 | 01- W5500 Socket API的说明

作者:互联网

一、准备工作

本系列文章只讲如何使用W5500驱动库。

1. 硬件环境

W5500驱动教程请参考:

本系列教程中对W5500模块和开发板之间的连接方式如图:


引脚连接情况为:

W5500引脚STM32引脚
3V33V3
GNDGND
CSPA15(SPI3_NSS)
MISOPC11(SPI3_MISO)
MOSIPB5(SPI3_MISO)
SCKPC10(SPI3_SCK)
nRSTPC0
nINTPB14

2. 网络环境

本系列实验需要PC和开发板在同一个网段(在同一个路由器)上,目前我的配置环境为:

所以将开发板地址设置为192.168.10.xxx,这里我设置为192.168.10.6:

使用PC测试是否可以ping通开发板:

如果可以ping通,则网络环境正常,可以进行后续实验。

二、W5500 驱动库提供的Socket API

W5500 驱动库提供的 Socket API 称为 WIZnet socket API,实现在:socket.hsocket.c中。

WIZnet socket API 基于Berkeley socket API,所以它具有非常相似的名称和接口,但是也有一些差异。

WIZnet socket API 和 Berkeley socket API 的对比如下:

APIWIZnetBerkeley
socket()OO
bind()XO
listen()OO
connect()OO
accept()XO
recv()OO
send()OO
recvfrom()OO
sendto()OO
closesocket()O
close() & disconnect()
O

从表里可以看到,WIZnet提供的Socket API没有bind和accept,所以使用 WIZnet API的流程如下:

三、WIZnet socket API说明

1. Socket

功能:使用传递的socket number初始化socekt并且打开socket。

原型:

int8_t  socket (uint8_t sn, uint8_t protocol, uint16_t port, uint8_t flag);

参数说明:

WIZCHIP_SOCK_NUM_是W5500芯片所能建立的最大独立socket数量,在 wizchip_conf.h 中定义,目前为8。

#if _WIZCHIP_ >= W5200
   #define _WIZCHIP_SOCK_NUM_   8   ///< The count of independant socket of @b WIZCHIP
#else
   #define _WIZCHIP_SOCK_NUM_   4   ///< The count of independant socket of @b WIZCHIP
#endif 

返回值:

2. listen

功能:监听来自客户端的连接请求。

原型:

int8_t  listen (uint8_t sn);

参数说明:

返回值:

3. connect

功能:连接服务端。

原型:

int8_t  connect (uint8_t sn, uint8_t *addr, uint16_t port);

参数说明:

返回值:

4. send

功能:发送TCP数据。

原型:

int32_t  send (uint8_t sn, uint8_t *buf, uint16_t len);

参数说明:

返回值:

5. recv

功能:接收TCP数据。

原型:

int32_t recv(uint8_t sn, uint8_t * buf, uint16_t len);

参数说明:

返回值:

6. sendto

功能:发送UDP数据。

原型:

int32_t sendto(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t port);

参数说明:

返回值:

7. recvfrom

功能:接收 UDP 数据。

原型:

int32_t recvfrom(uint8_t sn, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t *port);

参数说明:

返回值:

8. close

功能:关闭socket。

原型:

int8_t close(uint8_t sn);

参数说明:

返回值:

标签:01,Socket,W5500,uint8,Invalid,API,socket
来源: https://blog.csdn.net/Mculover666/article/details/116852090