V3.4.4 1更新WIFI_SPI驱动,2修改WIFI-SPI例程,3修改printf宏定义错误,4添加BTB主板负压电机例程

This commit is contained in:
JKS
2026-02-27 16:18:36 +08:00
parent c637f1b310
commit 16f479ccb6
14 changed files with 356 additions and 70 deletions

View File

@@ -1,3 +1,8 @@
Example_dual_camera // 双摄主板例程 Example_dual_camera // 双摄主板例程
Example_general //通用主板例程 Example_general //通用主板例程
Example_btb //btb缩微主板例程 Example_btb //btb缩微主板例程
例程的主要作用只是告诉大家如何使用各种库函数
因此例程内的库文件不一定是最新的,当通过库例程学习完之后
请使用Seekfree_TC264_Opensource_Library开源库进行开发。
开源库链接https://gitee.com/seekfree/TC264_Library

View File

@@ -1,3 +1,6 @@
V3.4.4
<09>޸<EFBFBD>printf<74>ض<EFBFBD><D8B6><EFBFBD><EFBFBD>еĺ궨<C4BA><EAB6A8>
<09><><EFBFBD><EFBFBD>WIFI_SPI<50><49><EFBFBD><EFBFBD>
V3.4.3 V3.4.3
<20><><EFBFBD><EFBFBD>ips200pro<72><6F><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ips200pro<72><6F><EFBFBD><EFBFBD>
<20>޸<EFBFBD>zf_device_config.h<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع⺯<D8B9><E2BAAF><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD> <20>޸<EFBFBD>zf_device_config.h<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>ع⺯<D8B9><E2BAAF><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>

View File

@@ -45,7 +45,7 @@
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
int fputc(int ch, FILE *stream) int fputc(int ch, FILE *stream)
{ {
uart_write_byte(DEBUG_UART_INDEX, (char)ch); uart_write_byte(PRINTF_USE_UART, (char)ch);
return (ch); return (ch);
} }
@@ -71,7 +71,7 @@ int _write(int fd, char *buf, int len)
int fgetc(FILE *f) int fgetc(FILE *f)
{ {
#if PRINTF_OUTPUT_TYPE == 0 #if PRINTF_OUTPUT_TYPE == 0
return uart_read_byte(DEBUG_UART_INDEX); return uart_read_byte(PRINTF_USE_UART);
#else #else
uint8 buf; uint8 buf;
wifi_spi_read_buffer(&buf, 1); wifi_spi_read_buffer(&buf, 1);

View File

@@ -24,7 +24,7 @@
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_wifi_spi * <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><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><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.9.20 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D * <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/ * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
* *
@@ -63,6 +63,21 @@
#define SOCKET_CONNECT_TIME_OUT 50000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> #define SOCKET_CONNECT_TIME_OUT 50000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
#define OTHER_TIME_OUT 1000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> #define OTHER_TIME_OUT 1000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
#if ((WIFI_SPI_RECVIVE_SIZE < 32) || (WIFI_SPI_RECVIVE_SIZE > 4088))
#error "WIFI_SPI_RECVIVE_SIZE must be >= 32 or <= 4088"
#endif
#if (WIFI_SPI_RECVIVE_SIZE >= WIFI_SPI_RECVIVE_FIFO_SIZE)
#error "WIFI_SPI_RECVIVE_FIFO_SIZE must be > WIFI_SPI_RECVIVE_SIZE"
#endif
#if (WIFI_SPI_TRANSFER_SIZE != 4088)
#error "WIFI_SPI_TRANSFER_SIZE must be == 4088"
#endif
char wifi_spi_version[12]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><E6B1BE>Ϣ char wifi_spi_version[12]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><E6B1BE>Ϣ
char wifi_spi_mac_addr[20]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>MAC<41><43>ַ<EFBFBD><D6B7>Ϣ char wifi_spi_mac_addr[20]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>MAC<41><43>ַ<EFBFBD><D6B7>Ϣ
char wifi_spi_ip_addr_port[25]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>Ϣ char wifi_spi_ip_addr_port[25]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>Ϣ
@@ -271,8 +286,6 @@ static uint8 wifi_spi_get_version (void)
{ {
memcpy(wifi_spi_version, temp_packets.buffer, temp_packets.head.length); memcpy(wifi_spi_version, temp_packets.buffer, temp_packets.head.length);
} }
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_VERSION != temp_packets.head.command) : 1;
return return_state; return return_state;
} }
@@ -293,8 +306,6 @@ static uint8 wifi_spi_get_mac_addr (void)
{ {
memcpy(wifi_spi_mac_addr, temp_packets.buffer, temp_packets.head.length); memcpy(wifi_spi_mac_addr, temp_packets.buffer, temp_packets.head.length);
} }
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_MAC_ADDR != temp_packets.head.command) : 1;
return return_state; return return_state;
} }
@@ -316,7 +327,77 @@ static uint8 wifi_spi_get_ip_addr_port (void)
{ {
memcpy(wifi_spi_ip_addr_port, temp_packets.buffer, temp_packets.head.length); memcpy(wifi_spi_ip_addr_port, temp_packets.buffer, temp_packets.head.length);
} }
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_IP_ADDR != temp_packets.head.command) : 1; return return_state;
}
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20><>ȡϵͳʱ<CDB3><CAB1>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time_format ʱ<><CAB1><EFBFBD><EFBFBD>ʽ
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> *buffer <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ30<33><30><EFBFBD>ֽ<EFBFBD>
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> buffer_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0-<2D>ɹ<EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0>Ҫȷ<D2AA><C8B7>WIFIģ<49><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><>WIFI SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߰汾֧<E6B1BE><D6A7>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΪ<CFA2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>printf<74><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ鿴
//-------------------------------------------------------------------------------------------------------------------
uint8 wifi_spi_get_time (wifi_spi_time_enum time_format, char *buffer, uint8 buffer_size)
{
uint8 return_state = 1;
wifi_spi_packets_struct temp_packets;
uint8 send_cmd, receive_cmd;
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>30<33><30><EFBFBD>ֽ<EFBFBD>
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V2<56>
if((30 <= buffer_size) && (!strncmp(wifi_spi_version, "V2", 2)))
{
send_cmd = WIFI_SPI_GET_TIME1 + time_format - WIFI_SPI_UTC_0;
receive_cmd = WIFI_SPI_REPLY_TIME1 + time_format - WIFI_SPI_UTC_0;
return_state = wifi_spi_get_parameter(send_cmd, &temp_packets, OTHER_TIME_OUT);
if((0 == return_state) && (receive_cmd == temp_packets.head.command))
{
return_state = (uint8)strncmp((const char *)temp_packets.buffer, "OK", 2);
if(0 == return_state)
{
memcpy(buffer, &temp_packets.buffer[3], temp_packets.head.length - 3);
buffer[temp_packets.head.length - 3] = 0;
}
}
}
return return_state;
}
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI ɨ<><C9A8><EFBFBD>ȵ<EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *buffer <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B5BD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ǿ<EFBFBD>ȣ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ź<EFBFBD>ǿ<EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buffer_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0-<2D>ɹ<EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><>WIFI SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߰汾֧<E6B1BE><D6A7>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΪ<CFA2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>printf<74><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ鿴
// <20><>ע<EFBFBD><D7A2>Ϣ ÿһ<C3BF>а<EFBFBD><D0B0><EFBFBD>һ<EFBFBD><D2BB>wifi<66><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
uint8 wifi_spi_wifi_scan (char *buffer, uint16 buffer_size)
{
uint8 return_state;
// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V2<56><EFBFBD>Ĺ̼<C4B9><CCBC><EFBFBD>֧<EFBFBD>ִ˹<D6B4><CBB9><EFBFBD>
if(!strncmp(wifi_spi_version, "V2", 2))
{
return_state = wifi_spi_set_parameter(WIFI_SPI_SET_WIFI_SCAN, NULL, 0, WIFI_CONNECT_TIME_OUT);
if(0 == return_state)
{
#if (0 == WIFI_SPI_READ_TRANSFER)
wifi_spi_send_buffer(NULL, 0);
#endif
while(0 == wifi_spi_read_buffer((uint8 *)buffer, buffer_size))
{
system_delay_ms(10);
}
}
}
return return_state; return return_state;
} }
@@ -505,7 +586,7 @@ uint32 wifi_spi_send_buffer (const uint8 *buffer, uint32 length)
while(length) while(length)
{ {
send_length = length > WIFI_SPI_TRANSFER_SIZE ? (uint16)WIFI_SPI_TRANSFER_SIZE : (uint16)length; send_length = (uint16) (length > WIFI_SPI_TRANSFER_SIZE ? WIFI_SPI_TRANSFER_SIZE : length);
if(wifi_spi_wait_idle(OTHER_TIME_OUT)) if(wifi_spi_wait_idle(OTHER_TIME_OUT))
{ {
@@ -555,6 +636,18 @@ uint32 wifi_spi_send_buffer (const uint8 *buffer, uint32 length)
return length; return length;
} }
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *string <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD>
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
// ʹ<><CAB9>ʾ<EFBFBD><CABE> wifi_spi_send_string("123");
// <20><>ע<EFBFBD><D7A2>Ϣ
//-------------------------------------------------------------------------------------------------------------------
void wifi_spi_send_string(const char *string)
{
wifi_spi_send_buffer((uint8*)string, strlen(string));
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *buff <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *buff <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
@@ -566,32 +659,57 @@ uint32 wifi_spi_send_buffer (const uint8 *buffer, uint32 length)
uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length) uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length)
{ {
zf_assert(NULL != buffer); zf_assert(NULL != buffer);
uint32 data_len = length; uint32 fifo_read_length;
uint32 write_length = 0;
wifi_spi_packets_struct temp_packets;
// <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>FIFO<46><4F><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>FIFO<46><4F>ȡ
if(fifo_used(&wifi_spi_fifo))
{
fifo_read_length = fifo_used(&wifi_spi_fifo);
fifo_read_length = length < fifo_read_length ? length : fifo_read_length;
fifo_read_buffer(&wifi_spi_fifo, buffer, &fifo_read_length, FIFO_READ_AND_CLEAN);
buffer += fifo_read_length;
length -= fifo_read_length;
write_length += fifo_read_length;
}
#if(1 == WIFI_SPI_READ_TRANSFER) #if(1 == WIFI_SPI_READ_TRANSFER)
wifi_spi_packets_struct temp_packets;
// <20><><EFBFBD><EFBFBD>WIFI SPI״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϻ<D0B6><CFBB><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD>򱾴β<F2B1BEB4><CEB2>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(WIFI_SPI_IDLE == wifi_spi_mutex) if(WIFI_SPI_IDLE == wifi_spi_mutex)
{ {
// <20><>ͨѶ״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ϊæ wifi_spi_mutex = WIFI_SPI_BUSY; // <20><>ͨѶ״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ϊæ
wifi_spi_mutex = WIFI_SPI_BUSY;
// <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>鿴ģ<E9BFB4><C4A3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>ȡ
do do
{ {
if(wifi_spi_wait_idle(OTHER_TIME_OUT)) if( (WIFI_SPI_RECVIVE_SIZE > wifi_spi_fifo.size) || // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<D5BC><E4B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ȡ
(wifi_spi_wait_idle(OTHER_TIME_OUT)) // <20><>ʱ<EFBFBD>˳<EFBFBD>
)
{ {
break; break;
} }
temp_packets.head.command = WIFI_SPI_DATA; temp_packets.head.command = WIFI_SPI_DATA;
temp_packets.head.length = 0; temp_packets.head.length = 0;
wifi_spi_transfer_command(&temp_packets, WIFI_SPI_RECVIVE_SIZE); wifi_spi_transfer_command(&temp_packets, WIFI_SPI_RECVIVE_SIZE);
// <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((WIFI_SPI_REPLY_DATA_START == temp_packets.head.command) || (WIFI_SPI_REPLY_DATA_END == temp_packets.head.command)) if( ((WIFI_SPI_REPLY_DATA_START == temp_packets.head.command) || (WIFI_SPI_REPLY_DATA_END == temp_packets.head.command)) &&
(temp_packets.head.length)
)
{ {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if(length)
if(temp_packets.head.length) {
fifo_read_length = length >= temp_packets.head.length ? temp_packets.head.length : length;
memcpy(buffer, temp_packets.buffer, fifo_read_length);
buffer += fifo_read_length;
length -= fifo_read_length;
write_length += fifo_read_length;
if(fifo_read_length < temp_packets.head.length) // <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><E5B2BB><EFBFBD><EFBFBD><EFBFBD>ಿ<EFBFBD><E0B2BF>д<EFBFBD><D0B4>FIFO
{
fifo_write_buffer(&wifi_spi_fifo, temp_packets.buffer + fifo_read_length, temp_packets.head.length - fifo_read_length);
}
}
else // ȫ<><C8AB>д<EFBFBD><D0B4>FIFO
{ {
fifo_write_buffer(&wifi_spi_fifo, temp_packets.buffer, temp_packets.head.length); fifo_write_buffer(&wifi_spi_fifo, temp_packets.buffer, temp_packets.head.length);
} }
@@ -601,8 +719,7 @@ uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length)
} }
#endif #endif
fifo_read_buffer(&wifi_spi_fifo, buffer, &data_len, FIFO_READ_AND_CLEAN); return write_length;
return data_len;
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -618,7 +735,7 @@ uint8 wifi_spi_init (char *wifi_ssid, char *pass_word)
uint8 return_state = 0; uint8 return_state = 0;
fifo_init(&wifi_spi_fifo, FIFO_DATA_8BIT, wifi_spi_buffer, WIFI_SPI_RECVIVE_FIFO_SIZE); fifo_init(&wifi_spi_fifo, FIFO_DATA_8BIT, wifi_spi_buffer, WIFI_SPI_RECVIVE_FIFO_SIZE);
spi_init(WIFI_SPI_INDEX, SPI_MODE0, WIFI_SPI_SPEED, WIFI_SPI_SCK_PIN, WIFI_SPI_MOSI_PIN, WIFI_SPI_MISO_PIN, SPI_CS_NULL);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC> spi_init(WIFI_SPI_INDEX, SPI_MODE3, WIFI_SPI_SPEED, WIFI_SPI_SCK_PIN, WIFI_SPI_MOSI_PIN, WIFI_SPI_MISO_PIN, SPI_CS_NULL);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>
gpio_init(WIFI_SPI_CS_PIN, GPO, 1, GPO_PUSH_PULL); gpio_init(WIFI_SPI_CS_PIN, GPO, 1, GPO_PUSH_PULL);
gpio_init(WIFI_SPI_RST_PIN, GPO, 1, GPO_PUSH_PULL); gpio_init(WIFI_SPI_RST_PIN, GPO, 1, GPO_PUSH_PULL);
gpio_init(WIFI_SPI_INT_PIN, GPI, 0, GPI_PULL_DOWN); gpio_init(WIFI_SPI_INT_PIN, GPI, 0, GPI_PULL_DOWN);
@@ -644,7 +761,11 @@ uint8 wifi_spi_init (char *wifi_ssid, char *pass_word)
// MAC<41><43>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi_spi_mac_addr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // MAC<41><43>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi_spi_mac_addr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wifi_spi_get_mac_addr(); wifi_spi_get_mac_addr();
if(NULL == wifi_ssid)
{
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>WIFI
break;
}
return_state = wifi_spi_wifi_connect(wifi_ssid, pass_word); return_state = wifi_spi_wifi_connect(wifi_ssid, pass_word);
if(return_state) if(return_state)
{ {

View File

@@ -55,7 +55,7 @@
#define WIFI_SPI_INDEX (SPI_3 ) // <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49> #define WIFI_SPI_INDEX (SPI_3 ) // <20><><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>SPI<50><49>
#define WIFI_SPI_SPEED (10 * 1000 * 1000 ) // Ӳ<><D3B2> SPI <20><><EFBFBD><EFBFBD> #define WIFI_SPI_SPEED (20 * 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_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_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_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>
@@ -84,6 +84,7 @@
typedef enum typedef enum
{ {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>
@@ -95,10 +96,15 @@ typedef enum
WIFI_SPI_SET_WIFI_INFORMATION = 0x10, // <20><><EFBFBD><EFBFBD>WIFI<46><49>Ϣ<EFBFBD><CFA2><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_SET_SOCKET_INFORMATION = 0x11, // <20><><EFBFBD><EFBFBD>SOCKET<45><54>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
WIFI_SPI_SET_WIFI_SCAN = 0x12, // <20><>ʼɨ<CABC><C9A8>WIFI
WIFI_SPI_SET_READ_LENGTH = 0x13, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
WIFI_SPI_GET_VERSION = 0x20, // <20><>ȡģ<C8A1><C4A3><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_MAC_ADDR = 0x21, // <20><>ȡģ<C8A1><C4A3>MAC<41><43>ַ
WIFI_SPI_GET_IP_ADDR = 0x22, // <20><>ȡģ<C8A1><C4A3>IP<49><50>ַ WIFI_SPI_GET_IP_ADDR = 0x22, // <20><>ȡģ<C8A1><C4A3>IP<49><50>ַ
WIFI_SPI_GET_TIME1 = 0x23, // <20><>ȡʱ<C8A1><CAB1> <20><>ʽ1
WIFI_SPI_GET_TIME2 = 0x24, // <20><>ȡʱ<C8A1><CAB1> <20><>ʽ2
WIFI_SPI_GET_TIME3 = 0x25, // <20><>ȡʱ<C8A1><CAB1> <20><>ʽ3
// <20>ӻ<EFBFBD><D3BB>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <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_OK = 0x80, // <20>ӻ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
@@ -110,6 +116,9 @@ typedef enum
WIFI_SPI_REPLY_VERSION = 0xA0, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8>̼<EFBFBD><CCBC> 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_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_REPLY_IP_ADDR = 0xA2, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿ں<CBBF>
WIFI_SPI_REPLY_TIME1 = 0xA3, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_REPLY_TIME2 = 0xA4, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_REPLY_TIME3 = 0xA5, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_INVALID2 = 0xFF // <20><>Ч<EFBFBD><D0A7><EFBFBD>ݰ<EFBFBD> WIFI_SPI_INVALID2 = 0xFF // <20><>Ч<EFBFBD><D0A7><EFBFBD>ݰ<EFBFBD>
}wifi_spi_packets_command_enum; }wifi_spi_packets_command_enum;
@@ -134,16 +143,25 @@ typedef struct
uint8 buffer[WIFI_SPI_RECVIVE_SIZE]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint8 buffer[WIFI_SPI_RECVIVE_SIZE]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_packets_struct; }wifi_spi_packets_struct;
typedef enum
{
WIFI_SPI_UTC_0 = 1, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_GMT, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> ת<><D7AA>ΪGMT<4D><54>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>׺<EFBFBD><D7BA><EFBFBD><EFBFBD>GMT һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ڶԽ<DAB6><D4BD>ƶ˴<C6B6>ģ<EFBFBD><C4A3>ʹ<EFBFBD><CAB9>
WIFI_SPI_UTC_8, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}wifi_spi_time_enum;
extern char wifi_spi_version[12]; // <20>̼<EFBFBD><CCBC><20>ַ<EFBFBD><D6B7><EFBFBD> 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_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> extern char wifi_spi_ip_addr_port[25]; // IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿ں<CBBF> <20>ַ<EFBFBD><D6B7><EFBFBD>
uint8 wifi_spi_get_time (wifi_spi_time_enum time_format, char *buffer, uint8 buffer_size);
uint8 wifi_spi_wifi_scan (char *buffer, uint16 buffer_size);
uint8 wifi_spi_wifi_connect (char *wifi_ssid, char *pass_word); 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_connect (char *transport_type, char *ip_addr, char *port, char *local_port);
uint8 wifi_spi_socket_disconnect (void); uint8 wifi_spi_socket_disconnect (void);
uint8 wifi_spi_udp_send_now (void); uint8 wifi_spi_udp_send_now (void);
uint32 wifi_spi_send_buffer (const uint8 *buff, uint32 length); uint32 wifi_spi_send_buffer (const uint8 *buff, uint32 length);
void wifi_spi_send_string (const char *string);
uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length); uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length);
uint8 wifi_spi_init (char *wifi_ssid, char *pass_word); uint8 wifi_spi_init (char *wifi_ssid, char *pass_word);

View File

@@ -1,3 +1,6 @@
V3.4.2
<09>޸<EFBFBD>printf<74>ض<EFBFBD><D8B6><EFBFBD><EFBFBD>еĺ궨<C4BA><EAB6A8>
<09><><EFBFBD><EFBFBD>WIFI_SPI<50><49><EFBFBD><EFBFBD>
V3.4.1 V3.4.1
<09>޸Ĵ<DEB8><C4B4>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BAAF><EFBFBD>еķ<D0B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09>޸Ĵ<DEB8><C4B4>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BAAF><EFBFBD>еķ<D0B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<09>޸<EFBFBD>ips200proע<6F><D7A2> <09>޸<EFBFBD>ips200proע<6F><D7A2>

View File

@@ -45,7 +45,7 @@
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
int fputc(int ch, FILE *stream) int fputc(int ch, FILE *stream)
{ {
uart_write_byte(DEBUG_UART_INDEX, (char)ch); uart_write_byte(PRINTF_USE_UART, (char)ch);
return (ch); return (ch);
} }
@@ -71,7 +71,7 @@ int _write(int fd, char *buf, int len)
int fgetc(FILE *f) int fgetc(FILE *f)
{ {
#if PRINTF_OUTPUT_TYPE == 0 #if PRINTF_OUTPUT_TYPE == 0
return uart_read_byte(DEBUG_UART_INDEX); return uart_read_byte(PRINTF_USE_UART);
#else #else
uint8 buf; uint8 buf;
wifi_spi_read_buffer(&buf, 1); wifi_spi_read_buffer(&buf, 1);

View File

@@ -24,7 +24,7 @@
* <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> zf_device_wifi_spi * <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><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><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.9.20 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ADS v1.10.2
* <20><><EFBFBD><EFBFBD>ƽ̨ TC264D * <20><><EFBFBD><EFBFBD>ƽ̨ TC264D
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/ * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> https://seekfree.taobao.com/
* *
@@ -63,6 +63,21 @@
#define SOCKET_CONNECT_TIME_OUT 50000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> #define SOCKET_CONNECT_TIME_OUT 50000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
#define OTHER_TIME_OUT 1000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> #define OTHER_TIME_OUT 1000 // <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
#if ((WIFI_SPI_RECVIVE_SIZE < 32) || (WIFI_SPI_RECVIVE_SIZE > 4088))
#error "WIFI_SPI_RECVIVE_SIZE must be >= 32 or <= 4088"
#endif
#if (WIFI_SPI_RECVIVE_SIZE >= WIFI_SPI_RECVIVE_FIFO_SIZE)
#error "WIFI_SPI_RECVIVE_FIFO_SIZE must be > WIFI_SPI_RECVIVE_SIZE"
#endif
#if (WIFI_SPI_TRANSFER_SIZE != 4088)
#error "WIFI_SPI_TRANSFER_SIZE must be == 4088"
#endif
char wifi_spi_version[12]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><E6B1BE>Ϣ char wifi_spi_version[12]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><E6B1BE>Ϣ
char wifi_spi_mac_addr[20]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>MAC<41><43>ַ<EFBFBD><D6B7>Ϣ char wifi_spi_mac_addr[20]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>MAC<41><43>ַ<EFBFBD><D6B7>Ϣ
char wifi_spi_ip_addr_port[25]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>Ϣ char wifi_spi_ip_addr_port[25]; // <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿<EFBFBD><CBBF><EFBFBD>Ϣ
@@ -271,8 +286,6 @@ static uint8 wifi_spi_get_version (void)
{ {
memcpy(wifi_spi_version, temp_packets.buffer, temp_packets.head.length); memcpy(wifi_spi_version, temp_packets.buffer, temp_packets.head.length);
} }
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_VERSION != temp_packets.head.command) : 1;
return return_state; return return_state;
} }
@@ -293,8 +306,6 @@ static uint8 wifi_spi_get_mac_addr (void)
{ {
memcpy(wifi_spi_mac_addr, temp_packets.buffer, temp_packets.head.length); memcpy(wifi_spi_mac_addr, temp_packets.buffer, temp_packets.head.length);
} }
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_MAC_ADDR != temp_packets.head.command) : 1;
return return_state; return return_state;
} }
@@ -316,7 +327,77 @@ static uint8 wifi_spi_get_ip_addr_port (void)
{ {
memcpy(wifi_spi_ip_addr_port, temp_packets.buffer, temp_packets.head.length); memcpy(wifi_spi_ip_addr_port, temp_packets.buffer, temp_packets.head.length);
} }
return_state = (return_state == 0) ? (WIFI_SPI_REPLY_IP_ADDR != temp_packets.head.command) : 1; return return_state;
}
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20><>ȡϵͳʱ<CDB3><CAB1>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> time_format ʱ<><CAB1><EFBFBD><EFBFBD>ʽ
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> *buffer <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ַ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ30<33><30><EFBFBD>ֽ<EFBFBD>
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> buffer_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0-<2D>ɹ<EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0>Ҫȷ<D2AA><C8B7>WIFIģ<49><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><>WIFI SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߰汾֧<E6B1BE><D6A7>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΪ<CFA2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>printf<74><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ鿴
//-------------------------------------------------------------------------------------------------------------------
uint8 wifi_spi_get_time (wifi_spi_time_enum time_format, char *buffer, uint8 buffer_size)
{
uint8 return_state = 1;
wifi_spi_packets_struct temp_packets;
uint8 send_cmd, receive_cmd;
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>30<33><30><EFBFBD>ֽ<EFBFBD>
// <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V2<56>
if((30 <= buffer_size) && (!strncmp(wifi_spi_version, "V2", 2)))
{
send_cmd = WIFI_SPI_GET_TIME1 + time_format - WIFI_SPI_UTC_0;
receive_cmd = WIFI_SPI_REPLY_TIME1 + time_format - WIFI_SPI_UTC_0;
return_state = wifi_spi_get_parameter(send_cmd, &temp_packets, OTHER_TIME_OUT);
if((0 == return_state) && (receive_cmd == temp_packets.head.command))
{
return_state = (uint8)strncmp((const char *)temp_packets.buffer, "OK", 2);
if(0 == return_state)
{
memcpy(buffer, &temp_packets.buffer[3], temp_packets.head.length - 3);
buffer[temp_packets.head.length - 3] = 0;
}
}
}
return return_state;
}
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI ɨ<><C9A8><EFBFBD>ȵ<EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *buffer <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B5BD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>ǿ<EFBFBD>ȣ<EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>ź<EFBFBD>ǿ<EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> buffer_size <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> uint8 ״̬ 0-<2D>ɹ<EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
// ʹ<><CAB9>ʾ<EFBFBD><CABE>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><>WIFI SPI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߰汾֧<E6B1BE><D6A7>
// <20><>ע<EFBFBD><D7A2>Ϣ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΪ<CFA2>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>printf<74><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ鿴
// <20><>ע<EFBFBD><D7A2>Ϣ ÿһ<C3BF>а<EFBFBD><D0B0><EFBFBD>һ<EFBFBD><D2BB>wifi<66><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//-------------------------------------------------------------------------------------------------------------------
uint8 wifi_spi_wifi_scan (char *buffer, uint16 buffer_size)
{
uint8 return_state;
// ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V2<56><EFBFBD>Ĺ̼<C4B9><CCBC><EFBFBD>֧<EFBFBD>ִ˹<D6B4><CBB9><EFBFBD>
if(!strncmp(wifi_spi_version, "V2", 2))
{
return_state = wifi_spi_set_parameter(WIFI_SPI_SET_WIFI_SCAN, NULL, 0, WIFI_CONNECT_TIME_OUT);
if(0 == return_state)
{
#if (0 == WIFI_SPI_READ_TRANSFER)
wifi_spi_send_buffer(NULL, 0);
#endif
while(0 == wifi_spi_read_buffer((uint8 *)buffer, buffer_size))
{
system_delay_ms(10);
}
}
}
return return_state; return return_state;
} }
@@ -505,7 +586,7 @@ uint32 wifi_spi_send_buffer (const uint8 *buffer, uint32 length)
while(length) while(length)
{ {
send_length = length > WIFI_SPI_TRANSFER_SIZE ? (uint16)WIFI_SPI_TRANSFER_SIZE : (uint16)length; send_length = (uint16) (length > WIFI_SPI_TRANSFER_SIZE ? WIFI_SPI_TRANSFER_SIZE : length);
if(wifi_spi_wait_idle(OTHER_TIME_OUT)) if(wifi_spi_wait_idle(OTHER_TIME_OUT))
{ {
@@ -555,6 +636,18 @@ uint32 wifi_spi_send_buffer (const uint8 *buffer, uint32 length)
return length; return length;
} }
//-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *string <20><>Ҫ<EFBFBD><D2AA><EFBFBD>͵<EFBFBD><CDB5>ַ<EFBFBD><D6B7><EFBFBD>
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> void
// ʹ<><CAB9>ʾ<EFBFBD><CABE> wifi_spi_send_string("123");
// <20><>ע<EFBFBD><D7A2>Ϣ
//-------------------------------------------------------------------------------------------------------------------
void wifi_spi_send_string(const char *string)
{
wifi_spi_send_buffer((uint8*)string, strlen(string));
}
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WIFI SPI <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *buff <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5> *buff <20><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD><EFBFBD>
@@ -566,32 +659,57 @@ uint32 wifi_spi_send_buffer (const uint8 *buffer, uint32 length)
uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length) uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length)
{ {
zf_assert(NULL != buffer); zf_assert(NULL != buffer);
uint32 data_len = length; uint32 fifo_read_length;
uint32 write_length = 0;
wifi_spi_packets_struct temp_packets;
// <20><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>FIFO<46><4F><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>FIFO<46><4F>ȡ
if(fifo_used(&wifi_spi_fifo))
{
fifo_read_length = fifo_used(&wifi_spi_fifo);
fifo_read_length = length < fifo_read_length ? length : fifo_read_length;
fifo_read_buffer(&wifi_spi_fifo, buffer, &fifo_read_length, FIFO_READ_AND_CLEAN);
buffer += fifo_read_length;
length -= fifo_read_length;
write_length += fifo_read_length;
}
#if(1 == WIFI_SPI_READ_TRANSFER) #if(1 == WIFI_SPI_READ_TRANSFER)
wifi_spi_packets_struct temp_packets;
// <20><><EFBFBD><EFBFBD>WIFI SPI״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϻ<D0B6><CFBB><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD>򱾴β<F2B1BEB4><CEB2>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(WIFI_SPI_IDLE == wifi_spi_mutex) if(WIFI_SPI_IDLE == wifi_spi_mutex)
{ {
// <20><>ͨѶ״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ϊæ wifi_spi_mutex = WIFI_SPI_BUSY; // <20><>ͨѶ״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ϊæ
wifi_spi_mutex = WIFI_SPI_BUSY;
// <20><><EFBFBD><EFBFBD>ͨѶ<CDA8>鿴ģ<E9BFB4><C4A3><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>ȡ
do do
{ {
if(wifi_spi_wait_idle(OTHER_TIME_OUT)) if( (WIFI_SPI_RECVIVE_SIZE > wifi_spi_fifo.size) || // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<D5BC><E4B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>ȡ
(wifi_spi_wait_idle(OTHER_TIME_OUT)) // <20><>ʱ<EFBFBD>˳<EFBFBD>
)
{ {
break; break;
} }
temp_packets.head.command = WIFI_SPI_DATA; temp_packets.head.command = WIFI_SPI_DATA;
temp_packets.head.length = 0; temp_packets.head.length = 0;
wifi_spi_transfer_command(&temp_packets, WIFI_SPI_RECVIVE_SIZE); wifi_spi_transfer_command(&temp_packets, WIFI_SPI_RECVIVE_SIZE);
// <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((WIFI_SPI_REPLY_DATA_START == temp_packets.head.command) || (WIFI_SPI_REPLY_DATA_END == temp_packets.head.command)) if( ((WIFI_SPI_REPLY_DATA_START == temp_packets.head.command) || (WIFI_SPI_REPLY_DATA_END == temp_packets.head.command)) &&
(temp_packets.head.length)
)
{ {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> if(length)
if(temp_packets.head.length) {
fifo_read_length = length >= temp_packets.head.length ? temp_packets.head.length : length;
memcpy(buffer, temp_packets.buffer, fifo_read_length);
buffer += fifo_read_length;
length -= fifo_read_length;
write_length += fifo_read_length;
if(fifo_read_length < temp_packets.head.length) // <20>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><E5B2BB><EFBFBD><EFBFBD><EFBFBD>ಿ<EFBFBD><E0B2BF>д<EFBFBD><D0B4>FIFO
{
fifo_write_buffer(&wifi_spi_fifo, temp_packets.buffer + fifo_read_length, temp_packets.head.length - fifo_read_length);
}
}
else // ȫ<><C8AB>д<EFBFBD><D0B4>FIFO
{ {
fifo_write_buffer(&wifi_spi_fifo, temp_packets.buffer, temp_packets.head.length); fifo_write_buffer(&wifi_spi_fifo, temp_packets.buffer, temp_packets.head.length);
} }
@@ -601,8 +719,7 @@ uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length)
} }
#endif #endif
fifo_read_buffer(&wifi_spi_fifo, buffer, &data_len, FIFO_READ_AND_CLEAN); return write_length;
return data_len;
} }
//------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------
@@ -618,7 +735,7 @@ uint8 wifi_spi_init (char *wifi_ssid, char *pass_word)
uint8 return_state = 0; uint8 return_state = 0;
fifo_init(&wifi_spi_fifo, FIFO_DATA_8BIT, wifi_spi_buffer, WIFI_SPI_RECVIVE_FIFO_SIZE); fifo_init(&wifi_spi_fifo, FIFO_DATA_8BIT, wifi_spi_buffer, WIFI_SPI_RECVIVE_FIFO_SIZE);
spi_init(WIFI_SPI_INDEX, SPI_MODE0, WIFI_SPI_SPEED, WIFI_SPI_SCK_PIN, WIFI_SPI_MOSI_PIN, WIFI_SPI_MISO_PIN, SPI_CS_NULL);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC> spi_init(WIFI_SPI_INDEX, SPI_MODE3, WIFI_SPI_SPEED, WIFI_SPI_SCK_PIN, WIFI_SPI_MOSI_PIN, WIFI_SPI_MISO_PIN, SPI_CS_NULL);//Ӳ<><D3B2>SPI<50><49>ʼ<EFBFBD><CABC>
gpio_init(WIFI_SPI_CS_PIN, GPO, 1, GPO_PUSH_PULL); gpio_init(WIFI_SPI_CS_PIN, GPO, 1, GPO_PUSH_PULL);
gpio_init(WIFI_SPI_RST_PIN, GPO, 1, GPO_PUSH_PULL); gpio_init(WIFI_SPI_RST_PIN, GPO, 1, GPO_PUSH_PULL);
gpio_init(WIFI_SPI_INT_PIN, GPI, 0, GPI_PULL_DOWN); gpio_init(WIFI_SPI_INT_PIN, GPI, 0, GPI_PULL_DOWN);
@@ -644,7 +761,11 @@ uint8 wifi_spi_init (char *wifi_ssid, char *pass_word)
// MAC<41><43>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi_spi_mac_addr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // MAC<41><43>ַ<EFBFBD><D6B7>Ϣ<EFBFBD><CFA2><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wifi_spi_mac_addr<64><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
wifi_spi_get_mac_addr(); wifi_spi_get_mac_addr();
if(NULL == wifi_ssid)
{
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>WIFI
break;
}
return_state = wifi_spi_wifi_connect(wifi_ssid, pass_word); return_state = wifi_spi_wifi_connect(wifi_ssid, pass_word);
if(return_state) if(return_state)
{ {

View File

@@ -95,10 +95,15 @@ typedef enum
WIFI_SPI_SET_WIFI_INFORMATION = 0x10, // <20><><EFBFBD><EFBFBD>WIFI<46><49>Ϣ<EFBFBD><CFA2><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_SET_SOCKET_INFORMATION = 0x11, // <20><><EFBFBD><EFBFBD>SOCKET<45><54>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
WIFI_SPI_SET_WIFI_SCAN = 0x12, // <20><>ʼɨ<CABC><C9A8>WIFI
WIFI_SPI_SET_READ_LENGTH = 0x13, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
WIFI_SPI_GET_VERSION = 0x20, // <20><>ȡģ<C8A1><C4A3><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_MAC_ADDR = 0x21, // <20><>ȡģ<C8A1><C4A3>MAC<41><43>ַ
WIFI_SPI_GET_IP_ADDR = 0x22, // <20><>ȡģ<C8A1><C4A3>IP<49><50>ַ WIFI_SPI_GET_IP_ADDR = 0x22, // <20><>ȡģ<C8A1><C4A3>IP<49><50>ַ
WIFI_SPI_GET_TIME1 = 0x23, // <20><>ȡʱ<C8A1><CAB1> <20><>ʽ1
WIFI_SPI_GET_TIME2 = 0x24, // <20><>ȡʱ<C8A1><CAB1> <20><>ʽ2
WIFI_SPI_GET_TIME3 = 0x25, // <20><>ȡʱ<C8A1><CAB1> <20><>ʽ3
// <20>ӻ<EFBFBD><D3BB>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <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_OK = 0x80, // <20>ӻ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>
@@ -110,6 +115,9 @@ typedef enum
WIFI_SPI_REPLY_VERSION = 0xA0, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8>̼<EFBFBD><CCBC> 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_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_REPLY_IP_ADDR = 0xA2, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿ں<CBBF>
WIFI_SPI_REPLY_TIME1 = 0xA3, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_REPLY_TIME2 = 0xA4, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_REPLY_TIME3 = 0xA5, // <20>ӻ<EFBFBD><D3BB>ظ<EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_INVALID2 = 0xFF // <20><>Ч<EFBFBD><D0A7><EFBFBD>ݰ<EFBFBD> WIFI_SPI_INVALID2 = 0xFF // <20><>Ч<EFBFBD><D0A7><EFBFBD>ݰ<EFBFBD>
}wifi_spi_packets_command_enum; }wifi_spi_packets_command_enum;
@@ -134,19 +142,27 @@ typedef struct
uint8 buffer[WIFI_SPI_RECVIVE_SIZE]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> uint8 buffer[WIFI_SPI_RECVIVE_SIZE]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}wifi_spi_packets_struct; }wifi_spi_packets_struct;
typedef enum
{
WIFI_SPI_UTC_0 = 1, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
WIFI_SPI_GMT, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> ת<><D7AA>ΪGMT<4D><54>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>׺<EFBFBD><D7BA><EFBFBD><EFBFBD>GMT һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ڶԽ<DAB6><D4BD>ƶ˴<C6B6>ģ<EFBFBD><C4A3>ʹ<EFBFBD><CAB9>
WIFI_SPI_UTC_8, // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}wifi_spi_time_enum;
extern char wifi_spi_version[12]; // <20>̼<EFBFBD><CCBC><20>ַ<EFBFBD><D6B7><EFBFBD> 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_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> extern char wifi_spi_ip_addr_port[25]; // IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>˿ں<CBBF> <20>ַ<EFBFBD><D6B7><EFBFBD>
uint8 wifi_spi_get_time (wifi_spi_time_enum time_format, char *buffer, uint8 buffer_size);
uint8 wifi_spi_wifi_scan (char *buffer, uint16 buffer_size);
uint8 wifi_spi_wifi_connect (char *wifi_ssid, char *pass_word); 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_connect (char *transport_type, char *ip_addr, char *port, char *local_port);
uint8 wifi_spi_socket_disconnect (void); uint8 wifi_spi_socket_disconnect (void);
uint8 wifi_spi_udp_send_now (void); uint8 wifi_spi_udp_send_now (void);
uint32 wifi_spi_send_buffer (const uint8 *buff, uint32 length); uint32 wifi_spi_send_buffer (const uint8 *buff, uint32 length);
void wifi_spi_send_string (const char *string);
uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length); uint32 wifi_spi_read_buffer (uint8 *buffer, uint32 length);
uint8 wifi_spi_init (char *wifi_ssid, char *pass_word); uint8 wifi_spi_init (char *wifi_ssid, char *pass_word);
#endif #endif

View File

@@ -49,7 +49,6 @@ int core0_main(void)
// <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> // <20>˴<EFBFBD><CBB4><EFBFBD>д<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cpu_wait_event_ready(); // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>к<EFBFBD><D0BA>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> cpu_wait_event_ready(); // <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>к<EFBFBD><D0BA>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
while (TRUE) while (TRUE)