打印
[信息]

WIFI模块ESP8266每次上电都需要重新配置

[复制链接]
13304|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
myhxihuanni|  楼主 | 2016-4-7 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
WIFI模块ESP8266每次上电都需要重新配置,怎么解决这个问题呀?我现在还处于用电脑调试它的阶段,然后手机用了一个调试的APP,配置好后,手机可以和它互相发送数据,但是发现每次它断电又上电后,都需要重新配置(AT+CIPMUX=1这样的),然后我尝试烧录固件,可是好像没有效果,有可以帮帮忙的大神吗?
沙发
xinyipcb| | 2016-4-7 17:55 | 只看该作者
标记一下,也想知道这个答案。

使用特权

评论回复
板凳
wangkj| | 2016-4-7 18:21 | 只看该作者
有源码,直接改写。

使用特权

评论回复
地板
大秦正声| | 2016-4-7 20:04 | 只看该作者
加油,鼓励。

使用特权

评论回复
5
ternenceliu| | 2016-4-8 09:08 | 只看该作者
通过什么方式重新配置IC的?

使用特权

评论回复
6
myhxihuanni|  楼主 | 2016-4-10 22:43 | 只看该作者
wangkj 发表于 2016-4-7 18:21
有源码,直接改写。

额,能够更加详细的说明一下吗?

使用特权

评论回复
7
myhxihuanni|  楼主 | 2016-4-10 22:44 | 只看该作者
ternenceliu 发表于 2016-4-8 09:08
通过什么方式重新配置IC的?

就是电脑上调工具啊

使用特权

评论回复
8
wangkj| | 2016-4-11 13:42 | 只看该作者
at命令 不会自动保存,只能重新改源码。

使用特权

评论回复
9
myhxihuanni|  楼主 | 2016-4-11 13:49 | 只看该作者
wangkj 发表于 2016-4-11 13:42
at命令 不会自动保存,只能重新改源码。

表示不懂源码是什么,不过还是谢谢你

使用特权

评论回复
10
wangkj| | 2016-4-11 15:04 | 只看该作者
你想做什么,我这几个,正在想,要不要看看8266的源码,我这也需要透传功能,
给stm32远程烧程序,
我的思路,8266 跑http server,远程网络配置,
串口1透传,串口2支持at命令。
但,问题是,这玩意,太容易抄板了。做出来,卖不出去好说,卖得好,秒抄。

使用特权

评论回复
11
wangkj| | 2016-4-11 15:04 | 只看该作者
我用过淘宝的蓝牙透传模块,压根就不能串口烧程序。
配置起来还麻烦。

使用特权

评论回复
12
huangqi412| | 2016-4-11 16:08 | 只看该作者
网上有ESP8266的SDK,这个你得下它的工程修改源码生成固件    这样你就能保存配置了-----FLASH擦写功能。

使用特权

评论回复
13
huangqi412| | 2016-4-11 16:10 | 只看该作者
huangqi412 发表于 2016-4-11 16:08
网上有ESP8266的SDK,这个你得下它的工程修改源码生成固件    这样你就能保存配置了-----FLASH擦写功能。 ...

要保存配置,   如果是外加单片机的话,你没必要动WIFI,可以在单片机里保存。       如果不外加单片机,看你需要什么功能,简单功能能在别人的源码上简单修改实现,如果功能复杂,恐怕得慢慢啃ESP8266了。

使用特权

评论回复
14
myhxihuanni|  楼主 | 2016-4-11 17:29 | 只看该作者
wangkj 发表于 2016-4-11 15:04
你想做什么,我这几个,正在想,要不要看看8266的源码,我这也需要透传功能,
给stm32远程烧程序,
我的思 ...

额,我已经知道51单片机是可以给ESP8266输入AT指令的,所以好像也不用特意烧录了,现在我的问题是我不会写51的程序代码

使用特权

评论回复
15
wangkj| | 2016-4-11 17:35 | 只看该作者
用printf,
重定向串口指令。
网上这种程序一搜一大把。不过,
每次发送设置,得差不多15s,得等前一组指令完成,才能进行一组。
如果你换stm32cpu的话,我倒是有现成的程序。
我没找到51,用的stm32f103,这个也不贵,网上才不到20块钱一个核心板。
换cpu吧。或者你自己找个51程序,重定向串口的,只要printf能用了,
我的stm32程序也没问题,都是c语言,没区别。

使用特权

评论回复
评论
JGQ0305 2019-3-11 17:22 回复TA
你好!还有stm32的源码吗?急需要 有的话能给发一下吗?1563562059@qq.com 
16
myhxihuanni|  楼主 | 2016-4-11 17:39 | 只看该作者
wangkj 发表于 2016-4-11 17:35
用printf,
重定向串口指令。
网上这种程序一搜一大把。不过,

好的,谢谢,我先去找找看,有疑问还可以向你请教吧

使用特权

评论回复
17
myhxihuanni|  楼主 | 2016-4-11 17:58 | 只看该作者
wangkj 发表于 2016-4-11 17:35
用printf,
重定向串口指令。
网上这种程序一搜一大把。不过,

能把你的STM32的代码给我看看吗?谢谢你

使用特权

评论回复
18
myhxihuanni|  楼主 | 2016-4-11 19:28 | 只看该作者
wangkj 发表于 2016-4-11 17:35
用printf,
重定向串口指令。
网上这种程序一搜一大把。不过,

#include "ZLG7289.h"

unsigned char data1;
void SYSCLK_Init();
void PORT_Init();
void UART0_Init();

void SYSCLK_Init()
{      
        unsigned int i;   
        OSCXCN=0X67;         //0X67=0110,0111
        for(i=0;i<256;i++);         //µÈ´ý>1ms
        while(!(OSCXCN&0X80));      //µÈ´ýXTLVLD±äΪ1
        OSCICN=0X88;         //ʱÖÓʧЧ¼ì²âÆ÷£¬Ñ¡ÔñÍⲿʱÖÓÔ´×÷ΪϵͳʱÖÓ
}
void PORT_Init()
{   
        XBR0 = 0x27;          /*½»²æ¿ª¹ØÅäÖÃ,URAT×ÜÏßTX0Öõ½P0.0¿Ú,
                                                                                                RX0Öõ½P0.1¿Ú, SPI×ÜÏßSCKÅäÖõ½P0.2¿Ú,
                                                                                                MOSIΪP0.4¿Ú, NSSΪP0.5,MISOÅäÖõ½P0.3¿Ú,
                                                                                                IIC×ÜÏßSDAÖõ½P0.6¿Ú,SCKÖõ½P0.7,
                                                                                                TX1,RX1ÅäÖõ½P1.0,P1.1,
                                                                                                CEX0,CEX1ÅäÖõ½P1.2,P1.3,
                                                                                                ÍⲿÖжÏint0ÅäÖõ½P1.4 */   
        XBR1 = 0x04;  
        XBR2 = 0x44;          /*ÔÊÐí¹¦ÄÜÑ¡Ôñ¿ª¹ØÓÐЧ*/   
        P0MDOUT = 0x1A;       /*SCK¡¢MOSI?ºÍNSSΪÍÆÀ­Ê½Êä³ö,MISO????Ϊ¿ªÂ©Ê½*/
        P74OUT   =0xff;
}
void UART0_Init()
{   
        SCON0=0x50;         //´®¿Ú·½Ê½1   
        TMOD=0X20;          //Ñ¡Óö¨Ê±Æ÷1×÷Ϊ²¨ÌØÂÊ·¢ÉúÆ÷
        TH1=0xF4;           //²¨ÌØÂÊΪ4800
        TL1=0xF4;
        ES0=1;             //¿ªÆô´®¿ÚÖжÏ0
        TF1=0;
        TR1=1;               //¶¨Ê±Æ÷¿ªÆô   
        PCON=0X80;           //²¨ÌØÂʼӱ¶ ²¨ÌØÂÊΪ9600   
        TI0=1;
}
void UART0_ISR() interrupt 4 using 1
{
        if(RI0)
        {   
                RI0=0;           //ÖжϽÓÊܱêÖ¾ÇåÁã      
                data1=SBUF0;      //½ÓÊÜÊý¾Ý
                SBUF0=data1;       //·¢ËÍÊý¾Ý  
                while(TI0==0);      
                TI0=0;           //·¢ËͱêÖ¾ÇåÁã
        }
}
void main()
{      
        WDTCN=0XDE;
        WDTCN=0XAD;
        SYSCLK_Init();
        ZLG7289_Init();
        PORT_Init();
        UART0_Init();   
        EA=1;
        while(1);
}
这个printf要加在中断里面吗?

使用特权

评论回复
19
wangkj| | 2016-4-12 09:15 | 只看该作者
不是,是fptc函数重写,压缩文件打开搜索,搜fptc函数就能找到。

Ex001-串口printf和scanf20160324180932.rar

3 MB

使用特权

评论回复
20
myhxihuanni|  楼主 | 2016-4-12 12:12 | 只看该作者
wangkj 发表于 2016-4-12 09:15
不是,是fptc函数重写,压缩文件打开搜索,搜fptc函数就能找到。

哦,好的,我去看看,谢谢你

#include "ZLG7289.h"

unsigned char data1;
void SYSCLK_Init();
void PORT_Init();
void UART0_Init();

void  DelayMs(unsigned int i)
{
        unsigned int j;
        for(;i>0;i--)
                for(j=1000;j>0;j--)        ;                               
}
void SYSCLK_Init()
{      
        unsigned int i;   
        OSCXCN=0X67;         //0X67=0110,0111
        for(i=0;i<256;i++);         //等待>1ms
        while(!(OSCXCN&0X80));      //等待XTLVLD变为1
        OSCICN=0X88;         //时钟失效检测器,选择外部时钟源作为系统时钟
}
void PORT_Init()
{   
        XBR0 = 0x27;          /*交叉开关配置,URAT总线TX0置到P0.0口,
                                                                                                RX0置到P0.1口, SPI总线SCK配置到P0.2口,
                                                                                                MOSI为P0.4口, NSS为P0.5,MISO配置到P0.3口,
                                                                                                IIC总线SDA置到P0.6口,SCK置到P0.7,
                                                                                                TX1,RX1配置到P1.0,P1.1,
                                                                                                CEX0,CEX1配置到P1.2,P1.3,
                                                                                                外部中断int0配置到P1.4 */   
        XBR1 = 0x04;  
        XBR2 = 0x44;          /*允许功能选择开关有效*/   
        P0MDOUT = 0x1A;       /*SCK、MOSI?和NSS为推拉式输出,MISO????为开漏式*/
        P74OUT   =0xff;
}
void UART0_Init()
{   
        SCON0=0x50;         //串口方式1   
        TMOD=0X20;          //选用定时器1作为波特率发生器
        TH1=0xF9;           //波特率为4800
        TL1=0xF9;
        ES0=1;             //开启串口中断0
        TF1=0;
        TR1=1;               //定时器开启   
        PCON=0X80;           //波特率加倍 波特率为9600   
        TI0=1;
}
void UART0_ISR() interrupt 4 using 1
{
        if(RI0)
        {   
                RI0=0;           //中断接受标志清零      
                data1=SBUF0;      //接受数据
                ZLG7289_Download(1,0,0,0x03);
                DelayMs(1000);
                SBUF0=data1;       //发送数据  
                while(TI0==0);      
                TI0=0;           //发送标志清零
        }
}
void main()
{      
        WDTCN=0XDE;
        WDTCN=0XAD;
        SYSCLK_Init();
        ZLG7289_Init();
        PORT_Init();
        UART0_Init();   
        EA=1;
        while(1);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

79

帖子

1

粉丝