- /*
- * 函数名:ESP8266_UnvarnishSend
- * 描述 :配置WF-ESP8266模块进入透传发送
- * 输入 :无
- * 返回 : 1,配置成功
- * 0,配置失败
- * 调用 :被外部调用
- */
- bool ESP8266_UnvarnishSend ( void )
- {
- return (
- ESP8266_Cmd ( "AT+CIPMODE=1", "OK", 0, 500 ) &&
- ESP8266_Cmd ( "AT+CIPSEND", "\r\n", ">", 500 ) );
- }
- /*
- * 函数名:ESP8266_StartOrShutServer
- * 描述 :WF-ESP8266模块开启或关闭服务器模式
- * 输入 :enumMode,开启/关闭
- * :pPortNum,服务器端口号字符串
- * :pTimeOver,服务器超时时间字符串,单位:秒
- * 返回 : 1,操作成功
- * 0,操作失败
- * 调用 :被外部调用
- */
- bool ESP8266_StartOrShutServer ( FunctionalState enumMode, char * pPortNum, char * pTimeOver )
- {
- char cCmd1 [120], cCmd2 [120];
- if ( enumMode )
- {
- sprintf ( cCmd1, "AT+CIPSERVER=%d,%s", 1, pPortNum );
- sprintf ( cCmd2, "AT+CIPSTO=%s", pTimeOver );
- return ( ESP8266_Cmd ( cCmd1, "OK", 0, 500 ) &&
- ESP8266_Cmd ( cCmd2, "OK", 0, 500 ) );
- }
- else
- {
- sprintf ( cCmd1, "AT+CIPSERVER=%d,%s", 0, pPortNum );
- return ESP8266_Cmd ( cCmd1, "OK", 0, 500 );
- }
- }
- /*
- * 函数名:ESP8266_Link_Server
- * 描述 :WF-ESP8266模块连接外部服务器
- * 输入 :enumE,网络协议
- * :ip,服务器IP字符串
- * :ComNum,服务器端口字符串
- * :id,模块连接服务器的ID
- * 返回 : 1,连接成功
- * 0,连接失败
- * 调用 :被外部调用
- */
- bool ESP8266_Link_Server ( ENUM_NetPro_TypeDef enumE, char * ip, char * ComNum, ENUM_ID_NO_TypeDef id)
- {
- 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_Cmd ( cCmd, "OK", "ALREAY CONNECT", 500 );
- }
- /*
- * 函数名:ESP8266_BuildAP
- * 描述 :WF-ESP8266模块创建WiFi热点
- * 输入 :pSSID,WiFi名称字符串
- * :pPassWord,WiFi密码字符串
- * :enunPsdMode,WiFi加密方式代号字符串
- * 返回 : 1,创建成功
- * 0,创建失败
- * 调用 :被外部调用
- */
- bool ESP8266_BuildAP ( char * pSSID, char * pPassWord, char * enunPsdMode )
- {
- char cCmd [120];
- sprintf ( cCmd, "AT+CWSAP="%s","%s",1,%s", pSSID, pPassWord, enunPsdMode );
- return ESP8266_Cmd ( cCmd, "OK", 0, 1000 );
- }
- /*
- * 函数名:ESP8266_JoinAP
- * 描述 :WF-ESP8266模块连接外部WiFi
- * 输入 :pSSID,WiFi名称字符串
- * :pPassWord,WiFi密码字符串
- * 返回 : 1,连接成功
- * 0,连接失败
- * 调用 :被外部调用
- */
- bool ESP8266_JoinAP ( char * pSSID, char * pPassWord )
- {
- char cCmd [120];
- sprintf ( cCmd, "AT+CWJAP="%s","%s"", pSSID, pPassWord );
- return ESP8266_Cmd ( cCmd, "OK", NULL, 7000 );
- }
- /*
- * 函数名:ESP8266_Net_Mode_Choose
- * 描述 :选择WF-ESP8266模块的工作模式
- * 输入 :enumMode,工作模式
- * 返回 : 1,选择成功
- * 0,选择失败
- * 调用 :被外部调用
- */
- bool ESP8266_Net_Mode_Choose ( ENUM_Net_ModeTypeDef enumMode )
- {
- switch ( enumMode )
- {
- case STA:
- return ESP8266_Cmd ( "AT+CWMODE=1", "OK", "no change", 2500 );
- case AP:
- return ESP8266_Cmd ( "AT+CWMODE=2", "OK", "no change", 2500 );
- case STA_AP:
- return ESP8266_Cmd ( "AT+CWMODE=3", "OK", "no change", 2500 );
- default:
- return false;
- }
- }
- 对函数进行的时候,可以线在while中调用at测试函数,这样,看看是否成功。
- /*
- * 函数名:ESP8266_AT_Test
- * 描述 :对WF-ESP8266模块进行AT测试启动
- * 输入 :无
- * 返回 : 无
- * 调用 :被外部调用
- */
- void ESP8266_AT_Test ( void )
- {
- ESP8266_RST_HIGH_LEVEL();
- Delay_ms ( 1000 );
- while ( ! ESP8266_Cmd ( "AT", "OK", NULL, 200 ) ) ESP8266_Rst ();
- }
- /*
- * 函数名:ESP8266_Rst
- * 描述 :重启WF-ESP8266模块
- * 输入 :无
- * 返回 : 无
- * 调用 :被ESP8266_AT_Test调用
- */
- void ESP8266_Rst ( void )
- {
- #if 0
- ESP8266_Cmd ( "AT+RST", "OK", "ready", 2500 );
- #else
- ESP8266_RST_LOW_LEVEL();
- Delay_ms ( 500 );
- ESP8266_RST_HIGH_LEVEL();
- #endif
- }
- /*
- * 函数名:ESP8266_Choose
- * 描述 :使能/禁用WF-ESP8266模块
- * 输入 :enumChoose = ENABLE,使能模块
- * enumChoose = DISABLE,禁用模块
- * 返回 : 无
- * 调用 :被外部调用
- */
- void ESP8266_Choose ( FunctionalState enumChoose )
- {
- if ( enumChoose == ENABLE )
- ESP8266_CH_HIGH_LEVEL();
- else
- ESP8266_CH_LOW_LEVEL();
- }