20260324
This commit is contained in:
507
RTX5_20220316/Driver/esp8266/esp8266.c
Normal file
507
RTX5_20220316/Driver/esp8266/esp8266.c
Normal file
@ -0,0 +1,507 @@
|
||||
#include "esp8266.h"
|
||||
#include "usart.h"
|
||||
#include "delay.h"
|
||||
#include <stdarg.h>
|
||||
#include "usart.h"
|
||||
|
||||
|
||||
struct STRUCT_USART_Fram ESP8266_Fram_Record_Struct = { 0 }; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
void ESP8266_Init(u32 bound)
|
||||
{
|
||||
|
||||
USART4_Configuration(bound);
|
||||
|
||||
}
|
||||
|
||||
//<2F><>ESP8266ģ<36>鷢<EFBFBD><E9B7A2>ATָ<54><D6B8>
|
||||
// cmd <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ָ<EFBFBD><D6B8>
|
||||
// ack1,ack2;<3B>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ΪNULL<4C><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><DFBC><EFBFBD>ϵ
|
||||
// time <20>ȴ<EFBFBD><C8B4><EFBFBD>Ӧʱ<D3A6><CAB1>
|
||||
//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD>ͳɹ<CDB3><C9B9><EFBFBD> 0ʧ<30><CAA7>
|
||||
bool ESP8266_Send_AT_Cmd(char *cmd,char *ack1,char *ack2,u32 time)
|
||||
{ //ESP8266_Send_AT_Cmd ( cStr, "> ", 0, 1000 );
|
||||
u8 i=0;
|
||||
Usart4_ReceiveBuff_Clear();
|
||||
if(strstr(ack2,"1"))
|
||||
u4_printf("%s",cmd);
|
||||
else u4_printf("%s\r\n",cmd);
|
||||
//UART_PutStr(UART4,cmd);
|
||||
//UART_PutStr(UART4,"\r\n");
|
||||
if(ack1==0&&ack2==0) //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
|
||||
return true;
|
||||
}
|
||||
delay_ms(time); //<2F><>ʱ
|
||||
|
||||
delay_ms(10);
|
||||
ESP8266_Fram_Record_Struct.Data_RX_BUF[ESP8266_Fram_Record_Struct.InfBit.FramLength ] = 0;
|
||||
|
||||
if(ack1!=0&&ack2!=0)
|
||||
{
|
||||
|
||||
i= ( ( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack1 ) ||
|
||||
( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
|
||||
return i;
|
||||
}
|
||||
else if( ack1 != 0 ) //strstr(s1,s2);<3B><><EFBFBD><EFBFBD>s2<73>Ƿ<EFBFBD>Ϊs1<73><31>һ<EFBFBD><D2BB><EFBFBD>֣<EFBFBD><D6A3>Ƿ<EFBFBD><C7B7>ظ<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>false<73><65><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>ת<EFBFBD><D7AA>Ϊbool<6F><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
i= ( ( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack1 ) ||
|
||||
( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
|
||||
return i;
|
||||
}
|
||||
else
|
||||
i= ( ( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack1 ) ||
|
||||
( bool ) strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, ack2 ) );
|
||||
return i;
|
||||
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD>ͻָ<CDBB><D6B8><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>ģ<EEBDAB><C4A3><EFBFBD>ָ<EFBFBD><D6B8>ɳ<EFBFBD><C9B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void ESP8266_AT_Test(void)
|
||||
{
|
||||
u16 count=0;
|
||||
while(count < 100)
|
||||
{
|
||||
if(ESP8266_Send_AT_Cmd("AT+RESTORE","ready",NULL,3000))
|
||||
{
|
||||
__nop();
|
||||
return;
|
||||
}
|
||||
++ count;
|
||||
delay_ms(100);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//ѡ<><D1A1>ESP8266<36>Ĺ<EFBFBD><C4B9><EFBFBD>ģʽ
|
||||
// enumMode ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
//<2F>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65>ʧ<EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>false
|
||||
bool ESP8266_Net_Mode_Choose(ENUM_Net_ModeTypeDef enumMode)
|
||||
{
|
||||
switch ( enumMode )
|
||||
{
|
||||
case STA:
|
||||
return ESP8266_Send_AT_Cmd ( "AT+CWMODE=1", "OK", "NULL", 2500 );
|
||||
|
||||
case AP:
|
||||
return ESP8266_Send_AT_Cmd ( "AT+CWMODE=2", "OK", "NULL", 2500 );
|
||||
|
||||
case STA_AP:
|
||||
return ESP8266_Send_AT_Cmd ( "AT+CWMODE=3", "OK", "NULL", 2500 );
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//ESP8266<36><36><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF>WIFI
|
||||
//pSSID WiFi<46>ʺ<EFBFBD>
|
||||
//pPassWord WiFi<46><69><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
bool ESP8266_JoinAP( char * pSSID, char * pPassWord)
|
||||
{
|
||||
char cCmd [120];
|
||||
|
||||
sprintf ( cCmd, "AT+CWJAP=\"%s\",\"%s\"", pSSID, pPassWord );
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 5000 );
|
||||
}
|
||||
|
||||
//ESP8266 <><CDB8>ʹ<EFBFBD><CAB9>
|
||||
//enumEnUnvarnishTx <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>bool<6F><6C><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD>֮false
|
||||
bool ESP8266_Enable_MultipleId (FunctionalState enumEnUnvarnishTx )
|
||||
{
|
||||
char cStr [20];
|
||||
|
||||
sprintf ( cStr, "AT+CIPMUX=%d", ( enumEnUnvarnishTx ? 1 : 0 ) );
|
||||
|
||||
return ESP8266_Send_AT_Cmd ( cStr, "OK", 0, 500 );
|
||||
|
||||
}
|
||||
|
||||
|
||||
//ESP8266 <20><><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
//enumE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//ip <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
|
||||
//ComNum <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
||||
//id<69><64><EFBFBD><EFBFBD><EFBFBD>Ӻţ<D3BA>ȷ<EFBFBD><C8B7>ͨ<EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65><EFBFBD><EFBFBD>֮fasle
|
||||
bool ESP8266_Link_Server(ENUM_NetPro_TypeDef enumE, char * ip, char * ComNum)
|
||||
{
|
||||
char cStr [100] = { 0 }; //cCmd [120];
|
||||
|
||||
switch ( enumE )
|
||||
{
|
||||
case enumTCP:
|
||||
sprintf ( cStr, "\"%s\",\"%s\",%s", "TCP", ip, ComNum );
|
||||
break;
|
||||
|
||||
case enumUDP:
|
||||
sprintf ( cStr, "\"%s\",\"%s\",%s", "UDP", ip, ComNum );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// if ( id < 5 )
|
||||
// sprintf ( cCmd, "AT+CIPSTART=%d,%s", id, cStr);
|
||||
|
||||
// else
|
||||
// sprintf ( cCmd, "AT+CIPSTART=%s", cStr );
|
||||
|
||||
return ESP8266_Send_AT_Cmd ( cStr, "OK", "NULL", 10000 );
|
||||
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>AP<41><50><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65> <20><>֮false
|
||||
//SSID<49><44>WiFi<46><69><EFBFBD><EFBFBD> PWD<57><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CHL<48><4C><EFBFBD>ŵ<EFBFBD> ECN<43><4E><EFBFBD><EFBFBD><EFBFBD>ܷ<EFBFBD>ʽ һ<><D2BB>ѡ<EFBFBD><D1A1>3 WPA2_PSK
|
||||
bool ESP8266_CWSAP_Set ( char * SSID, char * PWD,char CHL, char ECN )
|
||||
{
|
||||
char cStr [100] = { 0 },cStr0 [100] = { 0 };
|
||||
sprintf(cStr0,"\"%s\",\"%s\",%d,%d",SSID,PWD,CHL,ECN);
|
||||
sprintf ( cStr, "%s%s", "AT+CWSAP_DEF=", cStr0);
|
||||
|
||||
if (!ESP8266_Send_AT_Cmd ( cStr, "OK", 0, 5000 ))
|
||||
return false;
|
||||
else return true;
|
||||
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>tcp<63><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65> <20><>֮false
|
||||
bool ESP8266_Server_Create ( char * Port, FunctionalState Dis_En )
|
||||
{
|
||||
char cStr [100] = { 0 },cStr0 [100] = { 0 };
|
||||
sprintf(cStr0,"%d,%s",Dis_En,Port);
|
||||
sprintf ( cStr, "%s%s", "AT+CIPSERVER=", cStr0);
|
||||
|
||||
if (!ESP8266_Send_AT_Cmd ( cStr, "OK", 0, 5000 ))
|
||||
return false;
|
||||
else return true;
|
||||
|
||||
|
||||
|
||||
}
|
||||
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//void ESP8266_AP_TCPServer_SendData(char ID,char *data,u16 len)
|
||||
//{
|
||||
// char cStr [100] = { 0 },cStr0 [100] = { 0 };
|
||||
//
|
||||
// sprintf(cStr,"%s%d,%d","AT+CIPSEND=",ID,len);
|
||||
// ESP8266_Send_AT_Cmd ( cStr, 0, 0, 200 );
|
||||
// UART_PutStr(USART1,data);
|
||||
|
||||
|
||||
//}
|
||||
|
||||
//<><CDB8>ʹ<EFBFBD><CAB9>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65> <20><>֮false
|
||||
bool ESP8266_UnvarnishSend ( void )
|
||||
{
|
||||
if (!ESP8266_Send_AT_Cmd ( "AT+CIPMODE=1", "OK", 0, 500 ))
|
||||
return false;
|
||||
|
||||
return
|
||||
ESP8266_Send_AT_Cmd( "AT+CIPSEND", "OK", ">", 500 );
|
||||
|
||||
}
|
||||
|
||||
|
||||
//ESP8266<36><36><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
//enumEnUnvarnishTx<54>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><CDB8>ģʽ
|
||||
//pStr<74>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
//ulStrLength<74>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//ucId <20><><EFBFBD>Ӻ<EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65> <20><>֮false
|
||||
bool ESP8266_SendString(FunctionalState enumEnUnvarnishTx, char * pStr, u32 ulStrLength, char ucId )
|
||||
{
|
||||
char cStr [20];
|
||||
bool bRet = false;
|
||||
|
||||
|
||||
if ( enumEnUnvarnishTx )
|
||||
{
|
||||
u4_printf ( "%s", pStr );
|
||||
|
||||
bRet = true;
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if ( ucId < 5 )
|
||||
sprintf ( cStr, "AT+CIPSEND=%d,%ld", ucId, ulStrLength );
|
||||
|
||||
else
|
||||
sprintf ( cStr, "AT+CIPSEND=%ld", ulStrLength + 2 );
|
||||
|
||||
ESP8266_Send_AT_Cmd ( cStr, "> ", 0, 200 );
|
||||
bRet = ESP8266_Send_AT_Cmd ( pStr, "SEND OK", "1", 200 );
|
||||
|
||||
}
|
||||
|
||||
return bRet;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//ESP8266<36>˳<EFBFBD><EFBFBD><CDB8>ģʽ
|
||||
void ESP8266_ExitUnvarnishSend ( void )
|
||||
{
|
||||
delay_ms(1000);
|
||||
//u5_printf( "+++" );
|
||||
delay_ms( 500 );
|
||||
}
|
||||
|
||||
|
||||
//ESP8266 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
//<2F><><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ȡ״̬ʧ<CCAC><CAA7>
|
||||
//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<2F><><EFBFBD><EFBFBD>4<EFBFBD><34>ʧȥ<CAA7><C8A5><EFBFBD><EFBFBD>
|
||||
u8 ESP8266_Get_LinkStatus ( void )
|
||||
{
|
||||
if (ESP8266_Send_AT_Cmd( "AT+CIPSTATUS", "+CIPSTATUS:0", 0, 500 ) )
|
||||
{
|
||||
/* if ( strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, "TCP" ) )
|
||||
return 2;
|
||||
|
||||
else if ( strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, "STATUS:3\r\n" ) )
|
||||
return 3;
|
||||
|
||||
else if ( strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, "STATUS:4\r\n" ) )
|
||||
return 4;
|
||||
<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>WiFi<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>
|
||||
*/
|
||||
if ( strstr ( ESP8266_Fram_Record_Struct .Data_RX_BUF, "+CIPSTATUS:0" ) )
|
||||
return 2;//WIFI<46>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿͻ<D3BF><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *itoa( int value, char *string, int radix )
|
||||
{
|
||||
int i, d;
|
||||
int flag = 0;
|
||||
char *ptr = string;
|
||||
|
||||
/* This implementation only works for decimal numbers. */
|
||||
if (radix != 10)
|
||||
{
|
||||
*ptr = 0;
|
||||
return string;
|
||||
}
|
||||
|
||||
if (!value)
|
||||
{
|
||||
*ptr++ = 0x30;
|
||||
*ptr = 0;
|
||||
return string;
|
||||
}
|
||||
|
||||
/* if this is a negative value insert the minus sign. */
|
||||
if (value < 0)
|
||||
{
|
||||
*ptr++ = '-';
|
||||
|
||||
/* Make the value positive. */
|
||||
value *= -1;
|
||||
|
||||
}
|
||||
|
||||
for (i = 10000; i > 0; i /= 10)
|
||||
{
|
||||
d = value / i;
|
||||
|
||||
if (d || flag)
|
||||
{
|
||||
*ptr++ = (char)(d + 0x30);
|
||||
value -= (d * i);
|
||||
flag = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Null terminate the string. */
|
||||
*ptr = 0;
|
||||
|
||||
return string;
|
||||
|
||||
} /* NCL_Itoa */
|
||||
|
||||
|
||||
void USART_printf ( USART_TypeDef * USARTx, char * Data, ... )
|
||||
{
|
||||
const char *s;
|
||||
int d;
|
||||
char buf[16];
|
||||
|
||||
|
||||
va_list ap;
|
||||
va_start(ap, Data);
|
||||
|
||||
while ( * Data != 0 ) // <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7><F1B5BDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
if ( * Data == 0x5c ) //'\'
|
||||
{
|
||||
switch ( *++Data )
|
||||
{
|
||||
case 'r': //<2F>س<EFBFBD><D8B3><EFBFBD>
|
||||
USART_SendData(USARTx, 0x0d);
|
||||
Data ++;
|
||||
break;
|
||||
|
||||
case 'n': //<2F><><EFBFBD>з<EFBFBD>
|
||||
USART_SendData(USARTx, 0x0a);
|
||||
Data ++;
|
||||
break;
|
||||
|
||||
default:
|
||||
Data ++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
else if ( * Data == '%')
|
||||
{
|
||||
switch ( *++Data )
|
||||
{
|
||||
case 's': //<2F>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
s = va_arg(ap, const char *);
|
||||
for ( ; *s; s++)
|
||||
{
|
||||
USART_SendData(USARTx,*s);
|
||||
while( USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET );
|
||||
}
|
||||
Data++;
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
//ʮ<><CAAE><EFBFBD><EFBFBD>
|
||||
d = va_arg(ap, int);
|
||||
itoa(d, buf, 10);
|
||||
for (s = buf; *s; s++)
|
||||
{
|
||||
USART_SendData(USARTx,*s);
|
||||
while( USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET );
|
||||
}
|
||||
Data++;
|
||||
break;
|
||||
default:
|
||||
Data++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else USART_SendData(USARTx, *Data++);
|
||||
while ( USART_GetFlagStatus ( USARTx, USART_FLAG_TXE ) == RESET );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ΪESP8266MQTT<54><54><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
||||
|
||||
/*
|
||||
*MQTT<54><54><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*scheme <20><><EFBFBD>ӷ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>MQTT over TCP,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1
|
||||
*client_id MQTTclientID <20><><EFBFBD>ڱ<EFBFBD>־client<6E><74><EFBFBD><EFBFBD>
|
||||
*username <20><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> username
|
||||
*password <20><><EFBFBD>ڵ<EFBFBD>¼ MQTT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> password
|
||||
*cert_key_ID ֤<><D6A4> ID, Ŀǰ֧<C7B0><D6A7>һ<EFBFBD><D2BB> cert ֤<><D6A4>, <20><><EFBFBD><EFBFBD>Ϊ 0
|
||||
*CA_ID Ŀǰ֧<C7B0><D6A7>һ<EFBFBD><D2BB> CA ֤<><D6A4>, <20><><EFBFBD><EFBFBD>Ϊ 0
|
||||
*path <20><>Դ·<D4B4><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ""
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTUSERCFG( char * pClient_Id, char * pUserName,char * PassWord)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd, "AT+MQTTUSERCFG=0,1,\"%s\",\"%s\",\"%s\",0,0,\"\"", pClient_Id,pUserName,PassWord );
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*<2A><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*IP<49><50>MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>Ӧ<EFBFBD><D3A6>IP<49><50>ַ
|
||||
*ComNum MQTT<54><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>Ӧ<EFBFBD>Ķ˿ںţ<DABA>һ<EFBFBD><D2BB>Ϊ1883
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTCONN( char * Ip, int Num)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd,"AT+MQTTCONN=0,\"%s\",%d,0", Ip,Num);
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
/*
|
||||
*<2A><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD> MQTT <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6>IJ<EFBFBD>ͬ topic
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*Topic <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTopic
|
||||
*Qosֵ<73><D6B5>һ<EFBFBD><D2BB>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTSUB(char * Topic)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd, "AT+MQTTSUB=0,\"%s\",1",Topic );
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*<2A><>LinkID<49><44>ͨ<EFBFBD><CDA8> topic <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> data, <20><><EFBFBD><EFBFBD> data Ϊ<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*Topic <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTopic
|
||||
*data<74><61><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTPUB( char * Topic,char *temp)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf (cCmd, "AT+MQTTPUB=0,\"%s\",\"%s\",1,0", Topic ,temp);
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 1000 );
|
||||
}
|
||||
|
||||
/*
|
||||
*<2A>ر<EFBFBD> MQTT Client Ϊ LinkID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>ͷ<EFBFBD><CDB7>ڲ<EFBFBD>ռ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Դ
|
||||
*LinkID <20><><EFBFBD><EFBFBD>ID,Ŀǰֻ֧<D6BB><D6A7>0
|
||||
*Topic <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪTopic
|
||||
*data<74><61><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
*<2A><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true <20><>֮false
|
||||
*/
|
||||
bool ESP8266_MQTTCLEAN(void)
|
||||
{
|
||||
char cCmd [120];
|
||||
sprintf ( cCmd, "AT+MQTTCLEAN=0");
|
||||
return ESP8266_Send_AT_Cmd( cCmd, "OK", NULL, 500 );
|
||||
}
|
||||
|
||||
//ESP8266<36><36><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
//enumEnUnvarnishTx<54>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><CDB8>ģʽ
|
||||
//pStr<74>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
//ulStrLength<74>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//ucId <20><><EFBFBD>Ӻ<EFBFBD>
|
||||
//<2F><><EFBFBD>óɹ<C3B3><C9B9><EFBFBD><EFBFBD><EFBFBD>true<75><65> <20><>֮false
|
||||
bool MQTT_SendString(char * pTopic,char *temp2)
|
||||
{
|
||||
|
||||
bool bRet = false;
|
||||
ESP8266_MQTTPUB(pTopic,temp2);
|
||||
delay_ms(1000);
|
||||
bRet = true;
|
||||
return bRet;
|
||||
|
||||
}
|
||||
|
||||
void ESP8266_Fram_Record_Struct_Clear(void)
|
||||
{
|
||||
memset(ESP8266_Fram_Record_Struct.Data_RX_BUF,0,RX_BUF_MAX_LEN);
|
||||
ESP8266_Fram_Record_Struct.InfBit.FramFinishFlag=0;
|
||||
ESP8266_Fram_Record_Struct.InfBit.FramLength=0;
|
||||
}
|
||||
|
||||
89
RTX5_20220316/Driver/esp8266/esp8266.h
Normal file
89
RTX5_20220316/Driver/esp8266/esp8266.h
Normal file
@ -0,0 +1,89 @@
|
||||
#ifndef __ESP8266_H
|
||||
#define __ESP8266_H
|
||||
#include "stm32l1xx.h"
|
||||
#include "pbdata.h"
|
||||
#include "bsp.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#if defined ( __CC_ARM )
|
||||
#pragma anon_unions
|
||||
#endif
|
||||
|
||||
//ESP8266ģʽѡ<CABD><D1A1>
|
||||
typedef enum
|
||||
{
|
||||
STA,
|
||||
AP,
|
||||
STA_AP
|
||||
}ENUM_Net_ModeTypeDef;
|
||||
|
||||
//<2F><><EFBFBD>紫<EFBFBD><E7B4AB><EFBFBD><EFBFBD>Э<EFBFBD>飬ö<E9A3AC><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
typedef enum{
|
||||
enumTCP,
|
||||
enumUDP,
|
||||
} ENUM_NetPro_TypeDef;
|
||||
//<2F><><EFBFBD>Ӻţ<D3BA>ָ<EFBFBD><D6B8>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>Ӻſ<D3BA><C5BF>Է<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC>˿ڶ<CBBF><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
typedef enum{
|
||||
Multiple_ID_0 = 0,
|
||||
Multiple_ID_1 = 1,
|
||||
Multiple_ID_2 = 2,
|
||||
Multiple_ID_3 = 3,
|
||||
Multiple_ID_4 = 4,
|
||||
Single_ID_0 = 5,
|
||||
} ENUM_ID_NO_TypeDef;
|
||||
|
||||
|
||||
|
||||
|
||||
#define ESP8266_USART(fmt, ...) USART_printf (UART4, fmt, ##__VA_ARGS__)
|
||||
#define PC_USART(fmt, ...) printf(fmt, ##__VA_ARGS__) //<2F><><EFBFBD>Ǵ<EFBFBD><C7B4>ڴ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>ִ<EFBFBD><D6B4>printf<74><66><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ִ<EFBFBD><D6B4>fput<75><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>printf<74><66>
|
||||
|
||||
|
||||
|
||||
#define RX_BUF_MAX_LEN 200 //<2F><><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
|
||||
extern struct STRUCT_USART_Fram //<2F><><EFBFBD><EFBFBD>֡<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
||||
{
|
||||
char Data_RX_BUF[RX_BUF_MAX_LEN];
|
||||
union
|
||||
{
|
||||
__IO u16 InfAll;
|
||||
struct
|
||||
{
|
||||
__IO u16 FramLength :15; // 14:0
|
||||
__IO u16 FramFinishFlag :1; // 15
|
||||
}InfBit;
|
||||
};
|
||||
|
||||
}ESP8266_Fram_Record_Struct;
|
||||
|
||||
|
||||
|
||||
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>TCP<43><50><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
void ESP8266_Init(u32 bound);
|
||||
void ESP8266_AT_Test(void);
|
||||
bool ESP8266_Send_AT_Cmd(char *cmd,char *ack1,char *ack2,u32 time);
|
||||
//void ESP8266_Rst(void);
|
||||
bool ESP8266_Net_Mode_Choose(ENUM_Net_ModeTypeDef enumMode);
|
||||
bool ESP8266_JoinAP( char * pSSID, char * pPassWord );
|
||||
bool ESP8266_Enable_MultipleId ( FunctionalState enumEnUnvarnishTx );
|
||||
bool ESP8266_Link_Server(ENUM_NetPro_TypeDef enumE, char * ip, char * ComNum);
|
||||
bool ESP8266_SendString(FunctionalState enumEnUnvarnishTx, char * pStr, u32 ulStrLength, char ucId );
|
||||
bool ESP8266_UnvarnishSend ( void );
|
||||
void ESP8266_ExitUnvarnishSend ( void );
|
||||
|
||||
void ESP8266_Fram_Record_Struct_Clear(void);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
u8 ESP8266_Get_LinkStatus ( void );
|
||||
void USART_printf( USART_TypeDef * USARTx, char * Data, ... );
|
||||
bool ESP8266_CWSAP_Set ( char * SSID, char * PWD,char CHL, char ECN );
|
||||
bool ESP8266_Server_Create ( char * Port, FunctionalState Dis_En );
|
||||
//MQTT<54><54><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
|
||||
bool ESP8266_MQTTUSERCFG( char * pClient_Id, char * pUserName,char * PassWord);
|
||||
bool ESP8266_MQTTCONN( char * Ip, int Num);
|
||||
bool ESP8266_MQTTSUB(char * Topic);
|
||||
bool ESP8266_MQTTPUB( char * Topic,char *temp);
|
||||
bool ESP8266_MQTTCLEAN(void);
|
||||
bool MQTT_SendString(char * pTopic,char *temp2);
|
||||
|
||||
#endif
|
||||
193
RTX5_20220316/Driver/esp8266/tcp.c
Normal file
193
RTX5_20220316/Driver/esp8266/tcp.c
Normal file
@ -0,0 +1,193 @@
|
||||
#include "tcp.h"
|
||||
#include "esp8266.h"
|
||||
//volatile u8 TcpClosedFlag = 0;
|
||||
/*
|
||||
void ESP8266_STA_TCPClient_Test(void)
|
||||
{
|
||||
u8 res;
|
||||
|
||||
char str[100]={0};
|
||||
ESP8266_AT_Test();
|
||||
|
||||
ESP8266_Net_Mode_Choose(STA);
|
||||
while(!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD));
|
||||
ESP8266_Enable_MultipleId ( DISABLE );
|
||||
while(!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT));
|
||||
while(!ESP8266_UnvarnishSend());
|
||||
|
||||
while ( 1 )
|
||||
{
|
||||
sprintf (str,"<22><><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0>ſɿƼ<C9BF><C6BC><EFBFBD><EFBFBD><EFBFBD>˾" );//<2F><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>TCP<43><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//ESP8266_SendString ( ENABLE, str, 0, Single_ID_0 );
|
||||
UART_PutStr(USART1,str);
|
||||
delay_ms(1000);
|
||||
if(TcpClosedFlag) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>ʧȥ<CAA7><C8A5><EFBFBD><EFBFBD>
|
||||
{
|
||||
ESP8266_ExitUnvarnishSend(); //<2F>˳<EFBFBD><EFBFBD><CDB8>ģʽ
|
||||
do
|
||||
{
|
||||
res = ESP8266_Get_LinkStatus(); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
||||
}
|
||||
while(!res);
|
||||
|
||||
if(res != 3) //if(res == 4) ȷ<><C8B7>ʧȥ<CAA7><C8A5><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
|
||||
|
||||
while (!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD ) );
|
||||
while (!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT) );
|
||||
}
|
||||
while(!ESP8266_UnvarnishSend());
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
//void ESP8266_SendStr(char *str)
|
||||
//{
|
||||
// u8 res=0;
|
||||
// do
|
||||
// {
|
||||
// res = ESP8266_Get_LinkStatus(); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬
|
||||
// } while(!res);
|
||||
// if(res != 3) //if(res == 4) ȷ<><C8B7>ʧȥ<CAA7><C8A5><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD><EFBFBD><EFBFBD>
|
||||
// {
|
||||
//
|
||||
// ESP8266_Net_Mode_Choose(STA);
|
||||
// while (!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD ) );
|
||||
// while (!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT) );
|
||||
// }
|
||||
// while(!ESP8266_UnvarnishSend());
|
||||
// UART_PutStr(USART1,str);
|
||||
//
|
||||
//}
|
||||
|
||||
|
||||
void ESP8266_AP_TCPServer_Config(char *ssid,char *pwd,char *port)
|
||||
{
|
||||
u8 i=0;
|
||||
// ESP8266_Send_AT_Cmd("AT+RESTORE","ready",NULL,500);
|
||||
PWR_CTRLTFWF_L;
|
||||
// PWR_CTRL3V3_L;
|
||||
delay_ms(1000);
|
||||
PWR_CTRLTFWF_H;
|
||||
// PWR_CTRL3V3_H;
|
||||
delay_ms(1000);
|
||||
ESP8266_AT_Test();//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
i = 0;
|
||||
while((!ESP8266_Send_AT_Cmd("ATE0","OK",NULL,500))&(i<100))
|
||||
{
|
||||
i++;
|
||||
|
||||
}
|
||||
|
||||
i=0;
|
||||
while((!ESP8266_CWSAP_Set ( ssid, pwd,5, 3 ))&(i<100))
|
||||
{
|
||||
i++;
|
||||
|
||||
}
|
||||
i=0;
|
||||
while((!ESP8266_Net_Mode_Choose(AP))&(i<100))
|
||||
{
|
||||
i++;
|
||||
|
||||
}
|
||||
i=0;
|
||||
while((!ESP8266_Enable_MultipleId ( ENABLE ))&(i<10))
|
||||
{
|
||||
i++;
|
||||
|
||||
}
|
||||
i=0;
|
||||
while((!ESP8266_Server_Create( port,ENABLE ))&(i<100))
|
||||
{
|
||||
i++;
|
||||
|
||||
}
|
||||
|
||||
__nop();
|
||||
|
||||
}
|
||||
/*void Parse_ESP8266_Buffer(void)
|
||||
{
|
||||
char *subString;
|
||||
char *subStringNext;
|
||||
char i = 0;
|
||||
clear_Init_Data_Equipment();
|
||||
for (i = 0 ; i <= 9 ; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
subString = strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "CMD");
|
||||
subString++;
|
||||
subString++;
|
||||
subString++;//<2F>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>ַ
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
subString++;
|
||||
if ((subStringNext = strstr(subString, ",")) != NULL)
|
||||
{
|
||||
|
||||
switch(i)
|
||||
{
|
||||
case 1:memcpy(Init_Data_Equipment.Bc25_Ip, subString, subStringNext - subString);break; //<2F><>ȡUTCʱ<43><CAB1>
|
||||
case 2:memcpy(Init_Data_Equipment.Bc25_Port, subString, subStringNext - subString);break; //<2F><>ȡUTCʱ<43><CAB1>
|
||||
case 3:memcpy(Init_Data_Equipment.ESP8266_AP_Ports, subString, subStringNext - subString);break; //<2F><>ȡγ<C8A1><CEB3><EFBFBD><EFBFBD>Ϣ
|
||||
case 4:memcpy(Init_Data_Equipment.ESP8266_AP_SSIDs, subString, subStringNext - subString);break; //<2F><>ȡN/S
|
||||
case 5:memcpy(Init_Data_Equipment.ESP8266_AP_PWDs, subString, subStringNext - subString);break; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
case 6:memcpy(Init_Data_Equipment.Measure_Interval, subString, subStringNext - subString);break; //<2F><>ȡE/W
|
||||
case 7:memcpy(Init_Data_Equipment.Pub_Mode, subString, subStringNext - subString);break; //<2F><>ȡE/W
|
||||
case 8:memcpy(Init_Data_Equipment.Pub_Time, subString, subStringNext - subString);break; //<2F><>ȡE/W
|
||||
case 9:memcpy(Init_Data_Equipment.Equipment_ID, subString, subStringNext - subString);break; //<2F><>ȡE/W
|
||||
|
||||
default:break;
|
||||
}
|
||||
|
||||
subString = subStringNext;
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Usart4_ReceiveBuff_Clear();
|
||||
}
|
||||
*/
|
||||
|
||||
void WIFI_Process(void)
|
||||
{
|
||||
u8 times=0;
|
||||
ESP8266_Init(115200);
|
||||
ESP8266_AP_TCPServer_Config(Init_Data_Equipment.ESP8266_AP_SSIDs,
|
||||
Init_Data_Equipment.ESP8266_AP_PWDs,
|
||||
Init_Data_Equipment.ESP8266_AP_Ports);
|
||||
while(times<60) //60S<30>ȴ<EFBFBD><C8B4>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>WIFI
|
||||
{
|
||||
times++;
|
||||
osDelay(1000);
|
||||
if(ESP8266_Get_LinkStatus()==2)times=61;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
26
RTX5_20220316/Driver/esp8266/tcp.h
Normal file
26
RTX5_20220316/Driver/esp8266/tcp.h
Normal file
@ -0,0 +1,26 @@
|
||||
#ifndef __TCP_H
|
||||
#define __TCP_H
|
||||
#include "stm32l1xx.h"
|
||||
#include "bsp.h"
|
||||
|
||||
/*
|
||||
*<2A><><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<DEB8><C4B2>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD>ù<EFBFBD>
|
||||
*/
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>STAģʽ<C4A3><CABD><EFBFBD><EFBFBD>
|
||||
//#define User_ESP8266_SSID "502_2.4G"
|
||||
//#define User_ESP8266_PWD "licahk*******" //wifi<66><69><EFBFBD><EFBFBD>
|
||||
//#define User_ESP8266_PWD "shbh03302"
|
||||
//#define User_ESP8266_TCPServer_IP "192.168.9.61" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
|
||||
//#define User_ESP8266_TCPServer_PORT "8080" //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
||||
//#define ESP8266_AP_Port "8080"
|
||||
//#define ESP8266_AP_SSID "lica_esp8266"
|
||||
//#define ESP8266_AP_PWD "12345678"
|
||||
//extern volatile uint8_t TcpClosedFlag; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
||||
//void ESP8266_STA_TCPClient_Test(void);
|
||||
void ESP8266_AP_TCPServer_Config(char *ssid,char *pwd,char *port);
|
||||
//void Parse_ESP8266_Buffer(void);
|
||||
void WIFI_Process(void);
|
||||
#endif
|
||||
Reference in New Issue
Block a user