资源简介
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
相关资源
- 编码器接口模式程序 STM32F103
- SMT32F4函数固件库手册——新库
- STM32关于GPIO的控制程序
- STM32贪吃蛇游戏源代码
- STM32F103 读取SD卡中的图片TFT彩屏显示
-
基于Tli
nk云智能检测系统 - STM32频率计
- CanFestival移植至战舰STM32F1开发板
- ADS1256资料大集合
- STM32F103的DS1820温度测量工程代码包+
- STM32F4系列 不同定时器的PWM输出多达
- STM32,超声波测距模块HC_SR04,1602显示
- STM32平衡车代码
- STM32L0中文参考手册新版
- STM32中编码器脉冲捕获
- esp8266和stm32驱动之三实现访问网站获
- APDS9960基于STM32的驱动程序
- STM32+RC522--demo.rar
- stm32f103_IAPbootloader-1.0及用户app修改好
- INA219f1.zip
- lcd1602.zip
- (STM32F407)C610电调+M2006电机.rar
- 基于STM32F407的超声波智能跟随小车
- STM32F1战舰原理图+PCB源文件
- 基于STM32示波器 DDS信号发生器.zip
- VL53L0X 3.0 RCWL-0800激光测距
- stm32f1控制电磁阀+舵机+ADC推杆
- 基于STM32内部rtc的智能闹钟源代码
- STM32F103 模糊自整定增量式PID控制电机
- STM32F103系列 普通增量式PID控制速度程
评论
共有 条评论