资源简介
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\Jli
文件 375 2015-06-19 19:56 STM32wifiESP8266demo\Jli
目录 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\ob
文件 3941 2018-04-02 10:11 STM32wifiESP8266demo\ob
文件 109 2018-04-02 10:11 STM32wifiESP8266demo\ob
文件 11236 2018-04-02 10:11 STM32wifiESP8266demo\ob
............此处省略165个文件信息
- 上一篇:微信摇一摇源码
- 下一篇:VC串口程序.rar
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
评论
共有 条评论