野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10643|回复: 5

在开发板源程序中如何更改程序使ESP8266有设备连接就可以显示输出

[复制链接]
发表于 2017-5-20 10:26:12 | 显示全部楼层 |阅读模式
哪怕输出一句话,连接成功也行。输出到串口调试助手或者是输出到野火物联APP页面也行。不知道代码应该怎么加,求大神们帮助
回复

使用道具 举报

 楼主| 发表于 2017-5-20 10:26:36 | 显示全部楼层
#include "test.h"
#include "bsp_esp8266.h"
#include "bsp_SysTick.h"
#include <stdio.h>  
#include <string.h>  
#include <stdbool.h>
#include "bsp_dht11.h"
#include "bsp_led.h"
#include "bsp_beep.h"



/**
  * @brief  ESP8266 £¨Sta Tcp Client£&#169;í&#184;′&#171;
  * @param  &#206;T
  * @retval &#206;T
  */
void ESP8266_StaTcpClient_UnvarnishTest ( void )
{
        uint8_t ucId, ucLen;
        uint8_t ucLed1Status = 0, ucLed2Status = 0, ucLed3Status = 0, ucBuzzerStatus = 0;

        char cStr [ 100 ] = { 0 }, cCh;

  char * pCh, * pCh1;

        DHT11_Data_TypeDef DHT11_Data;
        

  printf ( "\r\n&#213;y&#212;ú&#197;&#228;&#214;&#195; ESP8266 ......\r\n" );

        macESP8266_CH_ENABLE();
        
        ESP8266_AT_Test ();
        
        ESP8266_Net_Mode_Choose ( AP );

  while ( ! ESP8266_CIPAP ( macUser_ESP8266_TcpServer_IP ) );

  while ( ! ESP8266_BuildAP ( macUser_ESP8266_BulitApSsid, macUser_ESP8266_BulitApPwd, macUser_ESP8266_BulitApEcn ) );        
        
        ESP8266_Enable_MultipleId ( ENABLE );
        
        while ( !        ESP8266_StartOrShutServer ( ENABLE, macUser_ESP8266_TcpServer_Port, macUser_ESP8266_TcpServer_OverTime ) );

        ESP8266_Inquire_ApIp ( cStr, 20 );
        printf ( "\r\n±&#190;&#196;£&#191;éWIFI&#206;a%s£&#172;&#195;ü&#194;&#235;&#191;a·&#197;\r\nAP IP &#206;a£o%s£&#172;&#191;a&#198;&#244;μ&#196;&#182;&#203;&#191;ú&#206;a£o%s\r\nê&#214;&#187;úí&#248;&#194;&#231;&#214;úê&#214;á&#172;&#189;ó&#184;&#195; IP oí&#182;&#203;&#191;ú£&#172;×&#238;&#182;à&#191;éá&#172;&#189;ó5&#184;&#246;&#191;í&#187;§&#182;&#203;\r\n",
           macUser_ESP8266_BulitApSsid, cStr, macUser_ESP8266_TcpServer_Port );
        
        
        strEsp8266_Fram_Record .InfBit .FramLength = 0;
        strEsp8266_Fram_Record .InfBit .FramFinishFlag = 0;        
        
        while ( 1 )
        {               
                if ( strEsp8266_Fram_Record .InfBit .FramFinishFlag )
                {
                        USART_ITConfig ( macESP8266_USARTx, USART_IT_RXNE, DISABLE ); //&#189;&#251;ó&#195;′&#174;&#191;ú&#189;óê&#213;&#214;D&#182;&#207;
                        strEsp8266_Fram_Record .Data_RX_BUF [ strEsp8266_Fram_Record .InfBit .FramLength ]  = '\0';
                        
//                        printf ( "\r\n%s\r\n", strEsp8266_Fram_Record .Data_RX_BUF );//
                        if ( ( pCh = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_LED_" ) ) != 0 )
                        {
                                cCh = * ( pCh + 8 );
                                
                                switch ( cCh )
                                {
                                        case '1':
                                                cCh = * ( pCh + 10 );
                                          switch ( cCh )
                                          {
                                                        case '0':
                                                                macLED1_OFF ();
                                                          ucLed1Status = 0;
                                                    break;
                                                        case '1':
                                                                macLED1_ON ();
                                                          ucLed1Status = 1;
                                                    break;
                                                        default :
                                                                break;
                                                }
                                                break;
                                                
                                        case '2':
                                                cCh = * ( pCh + 10 );
                                          switch ( cCh )
                                          {
                                                        case '0':
                                                                macLED2_OFF ();
                                                          ucLed2Status = 0;
                                                    break;
                                                        case '1':
                                                                macLED2_ON ();
                                                          ucLed2Status = 1;
                                                    break;
                                                        default :
                                                                break;
                                                }
                                                break;

                                        case '3':
                                                cCh = * ( pCh + 10 );
                                          switch ( cCh )
                                          {
                                                        case '0':
                                                                macLED3_OFF ();
                                                          ucLed3Status = 0;
                                                    break;
                                                        case '1':
                                                                macLED3_ON ();
                                                          ucLed3Status = 1;
                                                    break;
                                                        default :
                                                                break;
                                                }
                                                break;
                                                
                                  default :
            break;                                       
                                                
                                }
                                
                                sprintf ( cStr, "CMD_LED_%d_%d_%d_ENDLED_END", ucLed1Status, ucLed2Status, ucLed3Status );
                                
                        }
                        
                        else if ( ( pCh = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_BUZZER_" ) ) != 0 )
                        {
                                cCh = * ( pCh + 11 );
                                
                                switch ( cCh )
                                {
                                        case '0':
                                                macBEEP_OFF ();
                                          ucBuzzerStatus = 0;
                                                break;
                                        case '1':
                                                macBEEP_ON ();
                                          ucBuzzerStatus = 1;
                                                break;
                                        default:
                                                break;
                                }
                                
                                sprintf ( cStr, "CMD_BUZZER_%d_ENDBUZZER_END", ucBuzzerStatus );
                                
                        }
                                
                        else if ( ( ( pCh  = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_UART_" ) ) != 0 ) &&
                                        ( ( pCh1 = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "_ENDUART_END" ) )  != 0 ) )
                        {
                                if ( pCh < pCh1)
                                {
                                        ucLen = pCh1 - pCh + 12;
                                        memcpy ( cStr, pCh, ucLen );
                                        cStr [ ucLen ] = '\0';
                                }
                        }

                        else if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "CMD_READ_ALL_END" ) != 0 )
                        {
                                DHT11_Read_TempAndHumidity ( & DHT11_Data );
                                sprintf ( cStr, "CMD_LED_%d_%d_%d_ENDLED_DHT11_%d.%d_%d.%d_ENDDHT11_BUZZER_%d_ENDBUZZER_END",
                                                                        ucLed1Status, ucLed2Status, ucLed3Status, DHT11_Data .temp_int,
                                    DHT11_Data .temp_deci, DHT11_Data .humi_int, DHT11_Data .humi_deci,
                  ucBuzzerStatus );
                        }
                        
                                
                        if ( ( pCh = strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+IPD," ) ) != 0 )
                        {
                                ucId = * ( pCh + strlen ( "+IPD," ) ) - '0';
                                ESP8266_SendString ( DISABLE, cStr, strlen ( cStr ), ( ENUM_ID_NO_TypeDef ) ucId );
                        }
                        
                  strEsp8266_Fram_Record .InfBit .FramLength = 0;
            strEsp8266_Fram_Record .InfBit .FramFinishFlag = 0;        
                        
                        USART_ITConfig ( macESP8266_USARTx, USART_IT_RXNE, ENABLE ); //ê1&#196;ü′&#174;&#191;ú&#189;óê&#213;&#214;D&#182;&#207;
                        
                }
               
        }
        
               
}

例子程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-20 10:53:26 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-5-20 11:47:11 | 显示全部楼层
哪个大哥哥帮帮我啊,或者告诉我在改哪里也行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-20 11:57:23 | 显示全部楼层

想用ESP8266_Get_IdLinkStatus这个函数来查询8266的端口连接状态但是不知道这个函数怎样加到哪里才能用
uint8_t ESP8266_Get_IdLinkStatus ( void )
{
        uint8_t ucIdLinkStatus = 0x00;
       
       
        if ( ESP8266_Cmd ( "AT+CIPSTATUS", "OK", 0, 500 ) )
        {
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+CIPSTATUS:0," ) )
                        ucIdLinkStatus |= 0x01;
                else
                        ucIdLinkStatus &= ~ 0x01;
               
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+CIPSTATUS:1," ) )
                        ucIdLinkStatus |= 0x02;
                else
                        ucIdLinkStatus &= ~ 0x02;
               
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+CIPSTATUS:2," ) )
                        ucIdLinkStatus |= 0x04;
                else
                        ucIdLinkStatus &= ~ 0x04;
               
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+CIPSTATUS:3," ) )
                        ucIdLinkStatus |= 0x08;
                else
                        ucIdLinkStatus &= ~ 0x08;
               
                if ( strstr ( strEsp8266_Fram_Record .Data_RX_BUF, "+CIPSTATUS:4," ) )
                        ucIdLinkStatus |= 0x10;
                else
                        ucIdLinkStatus &= ~ 0x10;       

        }
       
        return ucIdLinkStatus;
       
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-20 11:58:49 | 显示全部楼层
刚开始接触STM32编程什么的都不懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 22:57 , Processed in 0.027379 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表