esp8266 udp服务器重新上电后要重新配置服务器

大神求教,如何保存重新配置的ESP8266wifi模块波特率
<em style="color:#999;font-size:12 margin-left:10" id="authorposton15-7-6 10:04:19&nbsp
今天调试wifi模块,发现固件已经配置好了115200,但是我们要用的是9600,用AT语句配置后,一下电就重新恢复到默认的115200,怎么回事
放弃 吧兄弟,用GAIINSPAN
模块上有单片机 ,你每次重启单片机都会初始化,重新用at指令设置esp8266,
直接改单片机的程序然后烧进去
楼主,我最近在玩wifi模块,也有这个疑问,请问你现在解决了没有?
今天用想设置单片机的波特率为115200,也碰到了不少问题,弄不了,麻烦楼主指教指教!
站长推荐 /8
除了亲人欢聚的喜悦
让人头痛的就是来自亲朋好友的过度关怀
“做什么工作啊?”
“工资多少啊?”
“有没有女朋友?”
“什么时候结婚?”
“买房了吗?”
面对让人崩溃的问题,如何自救呢?快来支支招吧!
春节回家,除了见到亲人,儿时的玩伴
那一顿一顿的美食
带了家乡独有的味道
光是想想,都就能让人,垂涎三尺。
快拿起你手中的相机,拍下美食
一起分享你的幸福,还有机会中大奖喔
Powered by1859人阅读
应用场景:ESP8266模块连接到室内路由器上面然后为MCU提供接入网络的功能,MCU接入到网络后,8266作为服务器使用,通过电脑客户端访问8266.
确认模块中间的四个引脚接到了VCC(3V3)上面,如下图所示:
除了电源外,还需要将模块的TX接U转串的RX,模块的RX接U转串的TX。
之后串口调试助手配置成波特率115200,其他配置如下图所示:
上面的准备做完之后就要开始用串口助手发送AT指令配置模块了。
模块上点之后会发送一些乱码,之后会出现一个reday,模块就可以正常使用了。
发送AT&#43;CWMODE=1,将模块设置为端点模式,不提供路由模式。
模块返回OK。
发送模块重启指令AT&#43;RST
发送AT&#43;CWJAP=&这里填入你要链接的室内路由器的名称&,&要连接的路由器的密码&
模块返回WIFI
& & & & & & &WIFI GOT IP
& & & & & & &OK
三条指令。
步骤四:发送AT&#43;CIPMUX=1指令
模块返回 &OK
& & & & & &发送AT&#43;CIPSERVER=1,是端口号,可以自己设定)
& & & & & 返回OK
配置完毕,查询模块的IP,发送AT&#43;CIFSR指令
&#43;CIFSR:STAIP,&192.168.1.106&
&#43;CIFSR:STAMAC,&5c:cf:7f:81:9d:67&
上面192.168.1.106就是模块IP地址了,在PC上面通过网络调试助手向IP192.168.1.106:8080发送数据就可以正常通信了。
注意事项:1、发送AT指令的时候,每行最后要回车,然后发送比如发送&AT&#43;RST回车&然后点击发送,不然的话发送不会成功
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:12806次
排名:千里之外
原创:18篇
(1)(1)(1)(1)(1)(4)(9)(1)(1)后使用快捷导航没有帐号?
查看: 1215|回复: 1
ESP8266常见问题解答
在线时间1557 小时
威望4732分
芯币15896枚
E金币103枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4732, 距离下一级还需 1268 积分
五彩晶圆(中级), 积分 4732, 距离下一级还需 1268 积分
1.为什么ESP8266 TCP透传过程会丢包?
因为没有设置硬件流控。如果需要避免丢包,请设置硬件流控。透传功能使用的是 TCP 协议,每包数据是 1460 (取决于协议栈),只要网络良好,buffer 空间没有被消耗完,就可以不停地传输数据。对于透传,串口接收数据间隔超过约 20 ms,就会认为数据接收结束,将已经接受的数据传输到网络。如果网络不好,就可能会丢弃一些数据,因此,为避免这种情况,可以将串口设置为流控模式。<font color="#.ESP8266 有几个 UART?
ESP8266 有两个 UART,其中 UARTO 有 TX、RX,可做数据传输;UART1 由于 RX 脚被 SPI-Flash 占用,只能使用 TX,可以做串口调试信息打印。
<font color="#.GPIO 电平状态是怎样的?
除了 XPD_DCDC,GPIO 可以配置上拉。关于 GPIO 的上电 IO 口默认状态为:除了 SDIO 6根线 +GPIO4+GPIO5+GPIO16 上电 IO 默认无上拉,其他的 GPIO 口均有上拉。由于是内部配置上拉,所以如需下拉,需外部加下拉方式或者加一个三级管的反相电路。
注意:GPIO 不能到 5V。GPIO4/5 外接 1M 电阻不能上拉到高电平;需 100K 电阻。<font color="#.如何屏蔽上电打印?
U0TXD 默认上电有系列打印,对此敏感应用可通过 UART 的内部引脚交换功能,在初始化的时候,调用 system_uart_swap 函数,将 U0TXD、U0RXD 分别与 U0RTS (MTDO/GPIO15),U0CTS (MTCK/GPIO13) 交换来屏蔽该上电的系统打印。交换后,硬件上的下载管脚还是使用 U0TXD+U0RXD,通信时需要将 MTDO 对应接到 MCU 的 RXD,MTCK 对应接到 MCU 的 TXD。<font color="#.为什么 ESP8266 上电时会出现乱码?如何修改波特率?如果使用的是 26 MHz 晶振,ESP8266 UARTO 上电后的波特率是 74880,所以上电时会有乱码。
客户可以在 user_main() 里面修改 UART 配置,比如:void ICACHE_FLASH_ATTR
uart_init(UartBautRate uart0_br, UartBautRate uart1_br)
& && &// rom use 74880 baut_rate, here reinitialize
& && &UartDev.baut_rate = uart0_
& && &uart_config(UART0);
& && &UartDev.baut_rate = uart1_
& && &uart_config(UART1);
}6.TCP/UDP 的包长是多少?
单包数据,TCP 单包 1460 字节,UDP 单包 1472 字节。<font color="#.ESP8266 的看门狗有什么作用?
为了提供系统稳定性,以应对多冲突的操作环境,ESP8266 集成了 2 级看门狗机制,包括软件看门狗和硬件看门狗。默认 2 个看门狗都是打开的。<font color="#.看门狗的超时间隔是多少?触发超时事件会有什么现象?硬件看门狗中断时间为 0.8*2048 ms ,即 1638.4 ms ,中断后处理时间为 0.8*8192 ms,即 6553.6 ms 。其中中断处理后时间为硬件看门狗中断发生后,需要进行喂狗操作的时间,如果超过该时间,即会触发硬件看门狗复位。因此,在仅有硬件看门狗的情况下,一个程序段如果运行时间超过 6553.6 ms ,即有可能触发硬件看门狗复位,若超过 8192 ms 则一定会触发复位。软件看门狗建立在 MAC timer 以及系统调度之上,中断时间为 1600 ms,中断后处理时间为 1600 ms。因此,在有软件+硬件看门狗的情况下,一个程序段如果运行时间超过 1600 ms,即有可能会触发软件看门狗复位,若超过 3200 ms 则一定会触发复位。<font color="#.如果我的应用不需要看门狗,如何关闭看门狗?
当时 SDK 仅支持关闭软件看门狗,支持同时喂软硬件看门狗。可以通过如下方式防止执行时间过长的用户程序导致看门狗复位:如果一个程序段运行时间在触发软件看门狗和触发硬件看门狗复位之间,则可通过 system_soft_wdt_stop () 的方式关闭软件看门狗,在程序段执行完毕后用 system_soft_wdt_restart () 重新打开软件看门狗。可以通过在程序段中添加 system_soft_wdt_feed () 来进行喂软硬件狗操作,防止软硬件看门狗复位。
<font color="#.我要在程序里面引入 10 秒的延迟,怎么做最好?
看门狗不支持无限循环。如果客户使用循环做延迟或者进入一个事件太长时间,就会触发硬件看门狗重启。推荐使用 callback 和 timer 的 API 做延迟。
如果要轮询事件,推荐使用中断和 timer 的 API 来做。大多数事件都是关联到 callback 上的,所以大多数情况下,轮询都是可以避免的。<font color="#.对于 Non-OS SDK,memory leak 问题如何 debug?可通过定于 MEMLEAK_DEBUG 宏启用 memory leak debug 功能,代码中调用 os_malloc, os_zalloc, os_calloc, os_realloc,os_free 可将调用的文件以及调用的对应行数记录在内存管理链表中,在有需要的地方通过调用 system_print_meminfo() 可打印出 heap 区内存分配情况。
<font color="#. 修改用户工程目录的 MakeFile,在 CONFIGURATION_DEFINES 后加宏定义:-DMEMLEAK_DEBUG
& & 如:CONFIGURATION_DEFINES = -DMEMLEAK_DEBUG<font color="#. 在用户代码,如 user_main.c 中,增加如下代码:
&&#include &mem.h&
&&bool ICACHE_FLASH_ATTR check_memleak_debug_enable (void)
&&return MEMLEAK_DEBUG_ENABLE;
&&}<font color="#. 在有可能内存泄露的地方调用 system_print_meminfo() ,建议仅在关键代码位置加入此函数进行 debug。<font color="#.发生“fatal exception”问题如何处理?
可以在 (*.S) 文件中找出对应的地址,添加打印以便定位问题。Fatal exception (28):
epc1=0x4025bfa6, epc2=0x, epc3=0x,
excvaddr=0x0000000f, depc=0x&&比如使用的是 user1.bin,那么就在 user1.S 中找到 <font color="#x4025bfa6 地址,并查明对应的函数。(这个比较困难,很多时候,仅仅根据这个及时找到了函数也很难知道具体什么原因导致的,只能做到大概定位)如果使用的是 flash.bin 和 irom0text.bin,可以在 eagle.S 中查找出错的地址。
13.ESP8266 总共有几个 timer ?
ESP8266 有 2 个 timer。一个硬件的 timer,一个软件的 timer。API os_timer 是 DSR 处理,不能产生中断,但是可以产生任务。任务会按照普通等级排队。硬件 timer 能产生中断和任务,中断能触发任务,任务按照普通等级排队。
<font color="#.使用 timer 中断是否有特定条件?
请参考 SDK 的 API 参考:《ESP8266 Non-OS SDK API 参考》和《ESP8266 RTOS SDK API 参考》(链接为:)。& &&&一般情况,使用 Non-OS SDK 时,硬件中断回调里面不要有声明为 ICACHE_FLASH_ATTR 的功能。同时中断回调里不要占用 CPU 太长时间。(这个需要注意,因为我们的绝大部分时候需要用到定时器中断,如果加入的打印信息过多或者注意不要加入ICACHE_FLASH_ATTR 的功能的函数,不然很可能够你吃一壶)
15.为什么 ESP8266_Non-OS_SDK 中有的函数前面添加了“ICACHE_FLASH_ATTR”宏?(这点很主要,多注意就可以让自己少掉几根头发,最近掉头发比较多,原因和这个有关)
对于 ESP8266_Non-OS_SDK:添加了“ICACHE_FLASH_ATTR”宏的函数,将存放在 IROM 中,CPU 仅在调用到它们的时候,将它们读到 cache 中运行;没有添加到“ICACHE_FLASH_ATTR”宏的函数,将在一开始上电运行时,就加载到 IRAM 中运行;由于空间有限,我们无法将所有代码都一次性加载到 IRAM 中运行,因此在大部分函数前添加到“ICACHE_FLASH_ATTR”宏,放在 IROM 中。& &请注意,不要再中断处理函数中调用带有“ICACHE_FLASH_ATTR”宏的函数,否则可能与 Flash 读写操作冲突。& &对于 ESP8266_RTOS_SDK:函数默认存放在 IROM 中,无须再添加“ICACHE_FLASH_ATTR”宏。中断处理函数也可以定义在 IROM 中。如果开发者需要将一些频繁调用的函数定义在 IRAM 中,在函数前添加“IRAM_ATTR”宏即可。16.为什么编译 Non-OS SDK 时会发生 IRAM_ATTR 错误?如果需要在 IRAM 中执行功能,就不需要加“ICACHE_FLASH_ATTR”的宏,那么该功能就是放在 IRAM 中执行。
17.为什么编译的时候会发生“irom0_0_seg”错误?
它表示代码量太大,IROM 区域存放不下了。我们可以在 SDK_v0.9.5 (及之后)的软件版本中,尝试如下步骤,解决这个问题:
1. 使用默认设置,编译生成 eagle.flash.bin 和 eagle.irom0text.bin。(1) 如果 size of eagle.flash.bin + size of eagle.irom0text.bin &= 236KBytes:很抱歉,您的代码量太大了,只能换大些的 Flash。(2) 如果 size of eagle.flash.bin + size of eagle.irom0text.bin & 236KBytes:请继续步骤 2。& &2. 在路径 SDK/ld 下修改文件“eagle.app.v6.new.512.app1.ld&。irom0_0_seg:& && && &&&org = 0x, len = 0x2B000根据步骤 1 中编译的“eagle.irom0text.bin”大小,改写上述 len 的值。示例:如果“eagle.irom0text.bin”大小为 179 KB,则可修改配置如下:irom0_0_seg:& && && &&&org = 0x, len = 0x2D000& &3. 重新编译 user1.bin 选择 boot_v.1.2+。
补充说明:代码中,函数前未加&&ICACHE_FLASH_ATTR 的,编译到 IRAM 中,最大 32 KB;函数前加了 ICACHE_FLASH_ATTR 的,编译到 IROM 中;
因为 RAM 的空间有限,因此做了这两个部分的区分:IRAM 中的代码,会在上电初始就完整加载到 RAM 中;IROM 中的代码是用到的时候才从 Flash 加载到 cache 中执行。
<font color="#.ESP8266 有 main 吗?
ESP8266 没有 main,程序入口为 user_init。19.操作指针有什么需要注意的?
内存必须 4 字节对齐读取,指针做转换时请确保为 4 字节对齐,否则转换失败,不能正常使用。例如,请勿直接指针转换 float temp = *((float*)data);而是使用 os_memcpy (memcpy) 实现。 20.RTOS SDK 和 Non-OS SDK 有何区别?
主要差异点如下:
Non-OS SDKNon-OS SDK 主要使用定时器和回调函数的方式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的。Non-OS SDK 使用espconn 接口实现网络操作,用户需要按照 espconn 接口的使用规则进行软件开发。
RTOS SDKRTOS 版本 SDK&&使用 freeRTOS 系统,引入 OS 多任务处理的机制,用户可以使用 freeRTOS 的标准接口实现资源管理、循环操作、任务内延时、任务间信息传递和同步等面向任务流程的设计方式。具体接口使用方法参考&&freeRTOS 官方网站的使用说明或者 USING THE FREERTOS REAL TIME KERNEL -&&A Practical Guide 这本书中的介绍。RTOS 版本 SDK 的网络操作接口是标准 lwIP API,同时提供了 BSD Socket API 接口的封装实现,用户可以直接按照 socket API 的使用方式来开发软件应用,也可以直接编译运行其他平台的标准 Socket 应用,有效降低平台切换的学习成本。RTOS 版本 SDK 引入了 cJSON 库,使用该库函数可以更加方便的实现对 JSON 数据包的解析。RTOS 版本兼容 Non-OS SDK 中的 Wi-Fi 接口、SmartConfig 接口、Sniffer 相关接口、系统接口、定时器接口、FOTA 接口和外围驱动接口,不支持 AT 实现。
个人淘宝店:/
主营:zigbee,蓝牙,w5100,zigbee usbdongle等电子产品
在线时间325 小时
E金币157枚
TA的帖子TA的资源
一粒金砂(高级), 积分 386, 距离下一级还需 114 积分
一粒金砂(高级), 积分 386, 距离下一级还需 114 积分
这些信息相当有用,谢谢分享
刻苦学习,共同进步
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
Powered by
逛了这许久,何不进去瞧瞧?ESP8266透传设置脚本,设置成功后自动连接贝壳物联平台
作者: | 更新时间:
一、手动设置
usb转ttl模块
ESP8266-01(固件版本v0.9以上,可进本站交流群下载)
usb转ttl模块驱动(请根据模块型号百度搜索下载)
ESP8266-01
USB to TTL
4、串口调试工具使用及AT命令示例
先确定usb to ttl连接的端口,再打开串口调试工具,设置如下图:
AT命令输入界面如下,一个命令一个命令输入:
依次输入以下命令(v0.9.5.2版):
//设置WiFi应用模式为Station
AT+CWMODE=1
//连接到WiFi路由器,请将SSID替换为路由器名称,Password替换为路由器WiFi密码
AT+CWJAP=&SSID&,&Password&
//连接贝壳物联服务器
AT+CIPSTART=&TCP&,&www.bigiot.net&,8181
//设置为透传模式
AT+CIPMODE=1
//进入透传模式
AT+CIPSEND
完成以上命令重启,自动进入透传模式,并连接贝壳物联服务器。
v1.0+固件命令如下:
AT+RESTORE
AT+CWMODE=3
AT+CWJAP=&SSID&,&Password&
AT+CIPMUX=0
AT+CIPMODE=1
AT+SAVETRANSLINK=1,&121.42.180.30&,8181,&TCP&
二、自动设置
此方法将ESP8266连接在Arduino的虚拟串口上,通过Arduino自动执行手动设置代码,省去usb转ttl模块操作。
Arduino 开发板
ESP8266-01
接线尽量简洁,连接线要短,这样可以提高成功率。
ESP8266-01
Arduino开发板
3.3V(加电阻上拉)
本站所有公开代码托管于GitHub,方便大家使用和共同参与完善,地址:
进入以上链接,依次点击 &-& 下载。
由于固件版本不一样,AT指令也有所不同,代码中有v0.9.5.2和v1.0+的版本。
可通过AT+GMR查看固件版本。
4、代码使用说明
下载代码后解压得到如下文件:
&&&&examples/&&
&&&&libraries/&&
&&&&README.md
5、用Arduino IDE打开
examples/ESP8266/config/config.ino
按代码中的注释说明,修改其中的WiFiSSID(路由器名称)、WiFiPASSWORD(WiFi密码)参数,上传至Arduino开发板,Arduino和Esp8266同时断电重启。
打开串口监视器,当看到 &{&M&:&WELCOME TO BIGIOT&}& 说明设置成功。
前面有点乱码是正常现象,但不能全是乱码,没有一个看得懂,就有可能波特率不对,或固件有问题。
====================================
如果严格按照以上教程来做,还出现以下情况:
考虑以下几点:
1、针脚对应、接线是应正确;
2、模块固件、硬件是否有问题;
3、使用手动设置输入AT指令(参见下载文件中的:ESP8266透传设置命令.txt),查看ESP模块的反馈情况。
评论:共30条
评论于: 21:29:24
回复于: 10:20:47
评论于: 15:49:44
回复于: 16:00:28
回复于: 17:03:21
评论于: 15:51:05
评论于: 14:26:45
回复于: 14:34:28
评论于: 22:27:29
回复于: 19:55:03
评论于: 22:29:25
回复于: 19:57:22
回复于: 22:48:59
回复于: 19:14:53
评论于: 08:43:12
回复于: 19:18:02
评论于: 22:38:08
回复于: 21:12:08
评论于: 21:35:27
评论于: 19:26:40
回复于: 11:46:04
评论于: 10:54:02
评论于: 11:00:21
回复于: 21:00:48
回复于: 12:16:59
回复于: 11:28:39
回复于: 19:14:48
评论于: 22:55:45
评论于: 18:52:41
评论于: 00:00:10
| 贝壳物联 | QQ交流群:
友情链接:

我要回帖

更多关于 esp8266做服务器 的文章

 

随机推荐