Files
QDAC-firmware/libraries/zf_device/zf_device_wifi_spi.h

183 lines
9.4 KiB
C
Raw Permalink Normal View History

2023-12-11 21:45:06 +08:00
/*********************************************************************************************************************
* CH32V307VCT6 Opensourec Library <EFBFBD><EFBFBD><EFBFBD><EFBFBD>CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڹٷ<EFBFBD> SDK <EFBFBD>ӿڵĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
* Copyright (c) 2022 SEEKFREE <EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD>
*
* <EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* CH32V307VCT6 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GPL<EFBFBD><EFBFBD>GNU General Public License<EFBFBD><EFBFBD><EFBFBD><EFBFBD> GNUͨ<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD> GPL <EFBFBD>ĵ<EFBFBD>3<EFBFBD><EFBFBD><EFBFBD> GPL3.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>κκ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<EFBFBD>֤
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><EFBFBD>ʺ<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
*
* <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD>յ<EFBFBD>һ<EFBFBD><EFBFBD> GPL <EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD> GPL3.0 <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤Э<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>İ
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <EFBFBD>ļ<EFBFBD>
* <EFBFBD><EFBFBD>ӭ<EFBFBD><EFBFBD>λʹ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD>İ<EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> zf_device_wifi_spi
* <EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɿƼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾
* <EFBFBD><EFBFBD><EFBFBD>Ϣ <EFBFBD> libraries/doc <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> version <EFBFBD>ļ<EFBFBD> <EFBFBD>˵<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MounRiver Studio V1.8.1
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ CH32V307VCT6
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
*
* <EFBFBD>޸ļ<EFBFBD>¼
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ע
* 2023-05-25 <EFBFBD><EFBFBD>W first version
********************************************************************************************************************/
/*********************************************************************************************************************
* <EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD><EFBFBD>
* ------------------------------------
* ģ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD> <EFBFBD><EFBFBD>Ƭ<EFBFBD><EFBFBD><EFBFBD>ܽ<EFBFBD>
* RST <EFBFBD> zf_device_wifi_spi.h <EFBFBD><EFBFBD> WIFI_SPI_RST_PIN <EFBFBD><EFBFBD><EFBFBD>
* INT <EFBFBD> zf_device_wifi_spi.h <EFBFBD><EFBFBD> WIFI_SPI_INT_PIN <EFBFBD><EFBFBD><EFBFBD>
* CS <EFBFBD> zf_device_wifi_spi.h <EFBFBD><EFBFBD> WIFI_SPI_CS_PIN <EFBFBD><EFBFBD><EFBFBD>
* MISO <EFBFBD> zf_device_wifi_spi.h <EFBFBD><EFBFBD> WIFI_SPI_MISO_PIN <EFBFBD><EFBFBD><EFBFBD>
* SCK <EFBFBD> zf_device_wifi_spi.h <EFBFBD><EFBFBD> WIFI_SPI_SCK_PIN <EFBFBD><EFBFBD><EFBFBD>
* MOSI <EFBFBD> zf_device_wifi_spi.h <EFBFBD><EFBFBD> WIFI_SPI_MOSI_PIN <EFBFBD><EFBFBD><EFBFBD>
* 5V 5V <EFBFBD><EFBFBD>Դ
* GND <EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* ------------------------------------
*********************************************************************************************************************/
#ifndef _zf_device_wifi_spi_h
#define _zf_device_wifi_spi_h
#include "zf_common_typedef.h"
#define WIFI_SPI_INDEX ( SPI_2 ) // <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define WIFI_SPI_SPEED ( 20 * 1000 * 1000) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
#define WIFI_SPI_SCK_PIN ( SPI2_MAP0_SCK_B13 ) // <20><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define WIFI_SPI_MOSI_PIN ( SPI2_MAP0_MOSI_B15 ) // <20><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define WIFI_SPI_MISO_PIN ( SPI2_MAP0_MISO_B14 ) // <20><><EFBFBD><EFBFBD>SPI_MISO<53><4F><EFBFBD><EFBFBD> IPSû<53><C3BB>MISO<53><4F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><C8BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><E5A3AC>spi<70>ij<EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1>Ҫʹ<D2AA><CAB9>
#define WIFI_SPI_CS_PIN ( C0 ) // <20><><EFBFBD><EFBFBD>SPI_CS<43><53><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>CS<43><53><EFBFBD><EFBFBD>
#define WIFI_SPI_INT_PIN ( C1 ) // <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
#define WIFI_SPI_RST_PIN ( A7 ) // <20><><EFBFBD>帴λ<E5B8B4><CEBB><EFBFBD><EFBFBD>
#define WIFI_SPI_BUFFER_SIZE ( 1024 ) // <20><><EFBFBD><EFBFBD>SPI<50><49><EFBFBD>յĻ<D5B5><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
#define WIFI_SPI_AUTO_CONNECT ( 0 ) // <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD> 0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<2D>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ģʽ 2-<2D>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ģʽ 3<><33><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#if (WIFI_SPI_AUTO_CONNECT > 2)
#error "WIFI_SPI_AUTO_CONNECT <20><>ֵֻ<D6B5><D6BB>Ϊ [0,1,2]"
#else
#define WIFI_SPI_TARGET_IP "192.168.2.52" // <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> IP
#define WIFI_SPI_TARGET_PORT "8080" // <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>Ķ˿<C4B6>
#define WIFI_SPI_LOCAL_PORT "8080" // <20><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
#endif
#define WIFI_SPI_MAX_MULTI ( 8 ) // <20><><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD>ַ
typedef enum
{
BUFFER_IDLE, // ģ<><C4A3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>е<EFBFBD>
BUFFER_READ, // ģ<><C4A3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ
BUFFER_WRITE, // ģ<><C4A3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>д<EFBFBD><D0B4>
}wifi_spi_buffer_state_enum;
typedef enum
{
TRANSMIT_IDLE, // <20><>ǰû<C7B0>д<EFBFBD><D0B4><EFBFBD>
TRANSMIT_WRITE_REQUEST, // <20><>ģ<EFBFBD><EFBFBD><E9B7A2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TRANSMIT_READ_STATE, // <20><>ȡģ<C8A1><C4A3>״̬
TRANSMIT_READ, // <20><><EFBFBD>ڶ<EFBFBD>ȡģ<C8A1><C4A3><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
TRANSMIT_WRITE, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_transmit_state_enum;
typedef enum
{
WIFI_SPI_STATION, // <20>豸ģʽ
WIFI_SPI_SOFTAP, // APģʽ
}wifi_spi_mode_enum;
typedef enum
{
WIFI_SPI_COMMAND, // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_SERIANET, // ʹ<><CAB9>͸<EFBFBD><CDB8><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_transfer_mode_enum;
typedef enum
{
WIFI_SPI_TCP_CLIENT, // ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_TCP_SERVER, // ģ<><C4A3><EFBFBD><EFBFBD>ΪTCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_UDP_CLIENT, // ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>UDP<44><50><EFBFBD><EFBFBD>
}wifi_spi_connect_mode_enum;
typedef enum
{
WIFI_SPI_SERVER_OFF, // ģ<><C4A3>δ<EFBFBD><CEB4><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_SERVER_ON, // ģ<><C4A3><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_connect_state_enum;
typedef enum
{
WIFI_SPI_LINK_0, // ģ<>鵱ǰ<E9B5B1><C7B0><EFBFBD><EFBFBD> 0
WIFI_SPI_LINK_1, // ģ<>鵱ǰ<E9B5B1><C7B0><EFBFBD><EFBFBD> 1
WIFI_SPI_LINK_2, // ģ<>鵱ǰ<E9B5B1><C7B0><EFBFBD><EFBFBD> 2
WIFI_SPI_LINK_3, // ģ<>鵱ǰ<E9B5B1><C7B0><EFBFBD><EFBFBD> 3
WIFI_SPI_LINK_4, // ģ<>鵱ǰ<E9B5B1><C7B0><EFBFBD><EFBFBD> 4
}wifi_spi_link_id_enum;
typedef struct
{
uint8 reserve;
uint8 cmd;
uint8 addr;
uint8 dummy;
uint8 magic;
uint8 sequence;
uint16 length;
}wifi_spi_buffer_struct;
typedef struct
{
uint8 version[12]; // <20>̼<EFBFBD><CCBC><20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
uint8 mac[20]; // <20><><EFBFBD><EFBFBD> MAC <20><>ַ <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
uint8 local_ip[17]; // <20><><EFBFBD><EFBFBD> IP <20><>ַ <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
uint8 local_port[10]; // <20><><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF> <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
uint8 remote_ip[5][17]; // Զ<><D4B6> IP <20><>ַ <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
wifi_spi_mode_enum mode; // WIFI ģʽ
wifi_spi_transfer_mode_enum transfer_mode; // <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ģʽ
wifi_spi_connect_mode_enum connect_mode; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
wifi_spi_connect_state_enum connect_state; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_information_struct;
typedef struct
{
uint8 *source[WIFI_SPI_MAX_MULTI];
uint16 length[WIFI_SPI_MAX_MULTI];
}wifi_spi_send_multi_struct;
extern wifi_spi_information_struct wifi_spi_information;
uint8 wifi_spi_disconnected_wifi (void); // <20>Ͽ<EFBFBD> WIFI <20><><EFBFBD><EFBFBD>
uint8 wifi_spi_entry_serianet (void); // <20><><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>ģʽ
uint8 wifi_spi_exit_serianet (void); // <20>ر<EFBFBD>͸<EFBFBD><CDB8>ģʽ
uint8 wifi_spi_connect_tcp_servers (char *ip, char *port, wifi_spi_transfer_mode_enum mode); // <20><><EFBFBD><EFBFBD> TCP <20><><EFBFBD><EFBFBD>
uint8 wifi_spi_connect_udp_client (char *ip, char *port, char *local_port, wifi_spi_transfer_mode_enum mode); // <20><><EFBFBD><EFBFBD> UDP <20><><EFBFBD><EFBFBD>
uint8 wifi_spi_disconnect_link (void); // <20>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD> TCP Server ʹ<>ñ<EFBFBD><C3B1>ӿڽ<D3BF><DABD><EFBFBD><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32 wifi_spi_send_byte (uint8 data); // WIFI ģ<><EFBFBD><E9B7A2><EFBFBD>ֽں<D6BD><DABA><EFBFBD>
uint32 wifi_spi_send_buffer (const uint8 *buff, uint32 length); // WIFI ģ<><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32 wifi_spi_send_buffer_multi (wifi_spi_send_multi_struct *multi_buffer); // WIFI ģ<><EFBFBD>Ͷ໺<CDB6><E0BBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32 wifi_spi_send_string (const char *str); // WIFI ģ<><EFBFBD><E9B7A2><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32 wifi_spi_read_buffer (uint8 *buff, uint32 len); // WIFI ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>պ<EFBFBD><D5BA><EFBFBD>
uint8 wifi_spi_init (char *wifi_ssid, char *pass_word, wifi_spi_mode_enum wifi_mode); // WIFI ģ<><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#endif