初始化仓库

This commit is contained in:
2025-10-15 00:22:56 +08:00
commit a6ddc01c98
650 changed files with 438085 additions and 0 deletions

View File

@@ -0,0 +1,152 @@
/*********************************************************************************************************************
* TC264 Opensourec Library <20><><EFBFBD><EFBFBD>TC264 <20><>Դ<EFBFBD><EFBFBD><E2A3A9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڹٷ<DAB9> SDK <20>ӿڵĵ<DAB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>
* Copyright (c) 2022 SEEKFREE <20><><EFBFBD>ɿƼ<C9BF>
*
* <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> TC264 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
*
* TC264 <20><>Դ<EFBFBD><D4B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B7A2><EFBFBD><EFBFBD> GPL<50><4C>GNU General Public License<73><65><EFBFBD><EFBFBD> GNUͨ<55>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <20><> GPL <20>ĵ<EFBFBD>3<EFBFBD><EFBFBD><E6A3A8> 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>/<2F><><EFBFBD>޸<EFBFBD><DEB8><EFBFBD>
*
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κεı<CEB5>֤
* <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB>ʺ<EFBFBD><CABA>ض<EFBFBD><D8B6><EFBFBD>;<EFBFBD>ı<EFBFBD>֤
* <20><><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD> GPL
*
* <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ͬʱ<CDAC>յ<EFBFBD>һ<EFBFBD><D2BB> GPL <20>ĸ<EFBFBD><C4B8><EFBFBD>
* <20><><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><https://www.gnu.org/licenses/>
*
* <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
* <20><><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ʹ<EFBFBD><CAB9> GPL3.0 <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>֤Э<D6A4><D0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>İ汾
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӣ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD> libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> GPL3_permission_statement.txt <20>ļ<EFBFBD><C4BC><EFBFBD>
* <20><><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> libraries <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>µ<EFBFBD> LICENSE <20>ļ<EFBFBD>
* <20><>ӭ<EFBFBD><D3AD>λʹ<CEBB>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EBB1A3><EFBFBD><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC>İ<EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_wifi_spi
* <20><>˾<EFBFBD><CBBE><EFBFBD><EFBFBD> <20>ɶ<EFBFBD><C9B6><EFBFBD><EFBFBD>ɿƼ<C9BF><C6BC><EFBFBD><EFBFBD>޹<EFBFBD>˾
* <20><EFBFBD><E6B1BE>Ϣ <20>鿴 libraries/doc <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> version <20>ļ<EFBFBD> <20>汾˵<E6B1BE><CBB5>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
*
* <20>޸ļ<DEB8>¼
* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ע
* 2024-01-18 SeekFree first version
********************************************************************************************************************/
/*********************************************************************************************************************
* <20><><EFBFBD>߶<EFBFBD><DFB6>
* ------------------------------------
* ģ<><C4A3><EFBFBD>ܽ<EFBFBD> <20><>Ƭ<EFBFBD><C6AC><EFBFBD>ܽ<EFBFBD>
* RST <20>鿴 zf_device_wifi_spi.h <20><> WIFI_SPI_RST_PIN <20><EFBFBD><EAB6A8>
* INT <20>鿴 zf_device_wifi_spi.h <20><> WIFI_SPI_INT_PIN <20><EFBFBD><EAB6A8>
* CS <20>鿴 zf_device_wifi_spi.h <20><> WIFI_SPI_CS_PIN <20><EFBFBD><EAB6A8>
* MISO <20>鿴 zf_device_wifi_spi.h <20><> WIFI_SPI_MISO_PIN <20><EFBFBD><EAB6A8>
* SCK <20>鿴 zf_device_wifi_spi.h <20><> WIFI_SPI_SCK_PIN <20><EFBFBD><EAB6A8>
* MOSI <20>鿴 zf_device_wifi_spi.h <20><> WIFI_SPI_MOSI_PIN <20><EFBFBD><EAB6A8>
* 5V 5V <20><>Դ
* GND <20><>Դ<EFBFBD><D4B4>
* <20><><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_3 ) // <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define WIFI_SPI_SPEED (30 * 1000 * 1000 ) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD>
#define WIFI_SPI_SCK_PIN (SPI3_SCLK_P22_3 ) // <20><><EFBFBD><EFBFBD>SPI_SCK<43><4B><EFBFBD><EFBFBD>
#define WIFI_SPI_MOSI_PIN (SPI3_MOSI_P22_0 ) // <20><><EFBFBD><EFBFBD>SPI_MOSI<53><49><EFBFBD><EFBFBD>
#define WIFI_SPI_MISO_PIN (SPI3_MISO_P22_1 ) // <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 (P22_2 ) // <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 (P15_8 ) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define WIFI_SPI_RST_PIN (P23_1 ) // <20><><EFBFBD>帴λ<E5B8B4><CEBB><EFBFBD><EFBFBD>
#define WIFI_SPI_RECVIVE_FIFO_SIZE (1024) // <20><><EFBFBD><EFBFBD>FIFO<46><4F>С
#define WIFI_SPI_READ_TRANSFER (1) // <20>ڵ<EFBFBD><DAB5><EFBFBD>wifi_spi_read_buffer <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>Է<EFBFBD><D4B7><EFBFBD>SPIͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SPIͨѶ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SPIͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡFIFO
// <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>κεĵط<C4B5><D8B7><EFBFBD><EFBFBD>÷<EFBFBD><C3B7>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>WIFI_SPI_READ_TRANSFER<45><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1
#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><D4B6><EFBFBD><EFBFBD><EFBFBD> 1-<2D>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2-<2D>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>UDP
#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.137.1" // <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD> IP
#define WIFI_SPI_TARGET_PORT "8086" // <20><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>Ķ˿<C4B6>
#define WIFI_SPI_LOCAL_PORT "6666" // <20><><EFBFBD><EFBFBD><EFBFBD>Ķ˿<C4B6> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>÷<EFBFBD>Χ2048-65535 Ĭ<><C4AC> 6666
#endif
#define WIFI_SPI_RECVIVE_SIZE (32) // ÿ<><C3BF>SPI<50><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>ֽ<EFBFBD><D6BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
#define WIFI_SPI_TRANSFER_SIZE (4088) // <20><><EFBFBD><EFBFBD>SPI<50><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>ֽ<EFBFBD><D6BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
typedef enum
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_INVALID1 = 0x00, // <20><>Ч<EFBFBD><D0A7><EFBFBD>ݰ<EFBFBD>
WIFI_SPI_RESET = 0x01, // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
WIFI_SPI_DATA = 0x02, // ͸<><CDB8><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
WIFI_SPI_UDP_SEND = 0x03, // UDP<44><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C4AC>SPI<50><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD>2MSδ<53>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_CLOSE_SOCKET = 0x04, // <20>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_SET_WIFI_INFORMATION = 0x10, // <20><><EFBFBD><EFBFBD>WIFI<46><49>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
WIFI_SPI_SET_SOCKET_INFORMATION = 0x11, // <20><><EFBFBD><EFBFBD>SOCKET<45><54>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
WIFI_SPI_GET_VERSION = 0x20, // <20><>ȡģ<C8A1><C4A3><EFBFBD>
WIFI_SPI_GET_MAC_ADDR = 0x21, // <20><>ȡģ<C8A1><C4A3>MAC<41><43>ַ
WIFI_SPI_GET_IP_ADDR = 0x22, // <20><>ȡģ<C8A1><C4A3>IP<49><50>ַ
// <20>ӻ<EFBFBD><D3BB>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_REPLY_OK = 0x80, // <20>ӻ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
WIFI_SPI_REPLY_ERROR = 0x81, // <20>ӻ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WIFI_SPI_REPLY_DATA_START = 0x90, // <20>ӻ<EFBFBD><D3BB>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ
WIFI_SPI_REPLY_DATA_END = 0x91, // <20>ӻ<EFBFBD><D3BB>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
WIFI_SPI_REPLY_VERSION = 0xA0, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8>̼<EFBFBD><CCBC>
WIFI_SPI_REPLY_MAC_ADDR = 0xA1, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>MAC<41><43>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ϣ
WIFI_SPI_REPLY_IP_ADDR = 0xA2, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿ں<CBBF>
WIFI_SPI_INVALID2 = 0xFF // <20><>Ч<EFBFBD><D0A7><EFBFBD>ݰ<EFBFBD>
}wifi_spi_packets_command_enum;
typedef enum
{
WIFI_SPI_IDLE, // ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>SPIͨѶ
WIFI_SPI_BUSY, // ģ<><C4A3><EFBFBD><EFBFBD>æ<EFBFBD><C3A6><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD>SPIͨѶ
}wifi_spi_state_enum;
typedef struct
{
uint8 command; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint8 reserve; // <20><><EFBFBD><EFBFBD>
uint16 length; // <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
}wifi_spi_head_struct;
typedef struct
{
wifi_spi_head_struct head; // ֡ͷ
uint8 buffer[WIFI_SPI_RECVIVE_SIZE]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_packets_struct;
extern char wifi_spi_version[12]; // <20>̼<EFBFBD><CCBC><20>ַ<EFBFBD><D6B7><EFBFBD>
extern char wifi_spi_mac_addr[20]; // ģ<><C4A3>MAC<41><43>ַ <20>ַ<EFBFBD><D6B7><EFBFBD>
extern char wifi_spi_ip_addr_port[25]; // IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿ں<CBBF> <20>ַ<EFBFBD><D6B7><EFBFBD>
uint8 wifi_spi_wifi_connect (char *wifi_ssid, char *pass_word);
uint8 wifi_spi_socket_connect (char *transport_type, char *ip_addr, char *port, char *local_port);
uint8 wifi_spi_socket_disconnect (void);
uint8 wifi_spi_udp_send_now (void);
uint32 wifi_spi_send_buffer (const uint8 *buff, uint32 length);
uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length);
uint8 wifi_spi_init (char *wifi_ssid, char *pass_word);
#endif