• 大小: 5.03MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-18
  • 语言: 其他
  • 标签: stm32  

资源简介

stm32单片机去 控制esp8266实现联网 断网检测等功能。

资源截图

代码片段和文件信息

//注意:由于wifi和串口都占用了较大的内存空间,目前已经尽可能减少内存配次数,如出现异常情况,可以多编译几次然后下载到单片机中
//tip:尽可能不要在函数中做较大的内存分配,建议直接拿到外面以全局变量的方式进行

//对 arduinoESP8266库部分函数由C++移植到C函数,方便51,ARM等C平台调用
//对返回值由原来的true or false 改为返回int型 0表示失败 其他表示成功或其他原因返回
#include 
#include “serialportAPI.h“
#include “ESP8266.h“
#include “stringAPIext.h“
#include “uart.h“

volatile unsigned long sys_tick = 0;


char data_rec[RECV_BUF_SIZE];
volatile char  flag;


static uint32_t recvPkg(uint8_t *buffer uint32_t buffer_size uint32_t *data_len uint32_t timeout uint8_t *coming_mux_id);
static int eATUART(uint32_t baud);
static int eATRST(void);
static int eAT(void);
static int eATCWSMARTSTART(uint8_t typechar *link_msg);
static int eATCWSMARTSTOP(void);
static int qATCWMODE(uint8_t *mode);
static int sATCWMODE(uint8_t mode);
static int sATCIPMUX(uint8_t mode);

static int recvFindAndFilter(const char *target const char *begin const char *end char *data_recuint32_t timeout);
static int recvFind(const char *targetuint32_t timeout);
static int recvString(char *rec_data const char *target uint32_t timeout);
static int recvString2(char *rec_data const char *target1 const char *target2 uint32_t timeout);
static int eATCIPSTATUS(char *data_rec);
static int sATCIPSTARTSingle(const char *type const char *addr uint32_t port);
//static int sATCIPSENDSingle(const uint8_t *buffer uint32_t len);
static int recvString3(char *rec_data const char *target1 const char *target2 const char *target3 uint32_t timeout);

/*******************************************************************************
  函 数 名 :Autolink
  函数功能 :自动连接,前10s自动连接,若连接失败则进入smartlink模式30s,若依然失败
             则再次回到自动连接,直到连接成功
  输    入 :无
  输    出 :无
*******************************************************************************/
void Autolink(void)
{
  int status = STATUS_LOSTIP;
  while (status != STATUS_GETIP)
  {
    uint32_t start_time = millis();
    DBG(“start auto link“);
    //10s自动连接时间
    while ((millis() - start_time < 10000) && status != STATUS_GETIP)
    {
      status = getSystemStatus();
delay(1000);
    }

    //连接失败进入smartlink模式 30s
    if (status != STATUS_GETIP)
    {
      char link_msg[RECV_BUF_SIZE];
      DBG(“start smartlink“);
      stopSmartlink();

      if (1 == smartlink((uint8_t)AIR_link link_msg))
      {
        DBG(link_msg);
        start_time = millis();//等待获取IP
        while ((millis() - start_time < 5000) && status != STATUS_GETIP)
        {
          status = getSystemStatus();
          delay(500);
        }
      } else
      {
        stopSmartlink();
        delay(500);
        DBG(“link AP fail“);
restart();
      }
    }
  }
  DBG(“link AP OK“);
}

int WifiInit(const char *addr uint32_t port)
{
  while(0 == restart());
  while(0 == setOprToStationSoftAP());
  Autolink();
  while(0 == disableMUX());
creattcp0:
  if (createTCP(addr port)) {//连接主机
    DBG(“create tcp ok\r\n“);
flag = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-29 16:04  STM32wifiESP8266demo\
     目录           0  2018-06-29 16:04  STM32wifiESP8266demo\CMSIS\
     文件       17273  2010-04-23 10:40  STM32wifiESP8266demo\CMSIS\core_cm3.c
     文件       85714  2010-04-23 10:40  STM32wifiESP8266demo\CMSIS\core_cm3.h
     文件      621555  2018-03-28 17:31  STM32wifiESP8266demo\CMSIS\stm32f10x.h
     文件       32068  2018-03-28 17:33  STM32wifiESP8266demo\CMSIS\system_stm32f10x.c
     文件        2068  2010-04-23 10:40  STM32wifiESP8266demo\CMSIS\system_stm32f10x.h
     文件        1329  2014-04-10 14:18  STM32wifiESP8266demo\Dbg_RAM.ini
     目录           0  2018-06-29 16:04  STM32wifiESP8266demo\Doc\
     文件        5344  2010-04-23 10:41  STM32wifiESP8266demo\Doc\readme.txt
     文件       14482  2018-04-02 00:09  STM32wifiESP8266demo\ESP8266.c
     文件        1147  2018-03-28 18:05  STM32wifiESP8266demo\ESP8266.h
     文件         339  2018-04-02 10:36  STM32wifiESP8266demo\EventRecorderStub.scvd
     文件      142346  2016-01-12 15:51  STM32wifiESP8266demo\htdemo.uvgui.lc
     文件      172378  2018-04-20 10:09  STM32wifiESP8266demo\htdemo.uvguix.Administrator
     文件       23624  2016-01-12 15:48  STM32wifiESP8266demo\htdemo.uvopt
     文件       21171  2018-03-28 18:08  STM32wifiESP8266demo\htdemo.uvoptx
     文件       22193  2016-01-12 15:48  STM32wifiESP8266demo\htdemo.uvproj.saved_uv4
     文件       21310  2018-03-28 18:08  STM32wifiESP8266demo\htdemo.uvprojx
     文件        2930  2018-03-28 17:32  STM32wifiESP8266demo\interface.c
     文件         453  2018-03-28 17:32  STM32wifiESP8266demo\interface.h
     文件       70360  2015-11-05 18:12  STM32wifiESP8266demo\JlinkLog.txt
     文件         375  2015-06-19 19:56  STM32wifiESP8266demo\JlinkSettings.ini
     目录           0  2018-06-29 16:04  STM32wifiESP8266demo\Listings\
     文件      173811  2018-04-02 10:34  STM32wifiESP8266demo\Listings\htdemo.map
     文件       49162  2018-04-02 10:11  STM32wifiESP8266demo\Listings\startup_stm32f10x_hd.lst
     文件        6363  2018-04-02 10:39  STM32wifiESP8266demo\main.c
     目录           0  2018-06-29 16:04  STM32wifiESP8266demo\objects\
     文件        3941  2018-04-02 10:11  STM32wifiESP8266demo\objects\core_cm3.crf
     文件         109  2018-04-02 10:11  STM32wifiESP8266demo\objects\core_cm3.d
     文件       11236  2018-04-02 10:11  STM32wifiESP8266demo\objects\core_cm3.o
............此处省略165个文件信息

评论

共有 条评论