信道acceptencoding

acceptencoding  时间:2021-05-22  阅读:()
www.
espressif.
comESP8266EX常见问题版本1.
7乐鑫信息科技版权所有2019关于本手册本文介绍ESP8266EX的常见问题以及解答.
发布说明文档变更通知用户可通过乐鑫官网订阅页面https://www.
espressif.
com/zh-hans/subscribe订阅技术文档变更的电子邮件通知.
证书下载用户可通过乐鑫官网证书下载页面https://www.
espressif.
com/zh-hans/certicates下载产品证书.
日期版本发布说明2016.
08V1.
0首次发布.
2016.
09V1.
1第3章增加问题"如何优化ESP8266应用的内存使用".
2016.
10V1.
2第1章增加问题"如果应用使用的是不支持FOTA的固件,要将eagle.
irom0.
text.
bin下载到哪里".
第3章增加问题"如何让ESP8266上电后快速连接AP".
2016.
10V1.
3第7章增加问题"调用wi_softap_set_cong()时,函数返回成功,但为何无法修改ESP8266的SoftAPSSID和密码".
2016.
11V1.
4第3章增加以下两个问题:为什么ESP8266进入启动模式(2,7)并触发看门狗复位ESP8266上电时打印的boot模式信息代表什么如何改变boot模式2018.
08V1.
5格式更改.
2018.
10V1.
6增加第7章有关"如何修改默认上电校准方式"的问题.
2019.
03V1.
7第3章增加有关"ESP8266启动打印ets_main.
c"的问题目录1.
应用11.
1.
为什么云端升级需要2个BIN文件"user1.
bin"和"user2.
bin"有什么区别11.
2.
如何生成"user1.
bin"和"user2.
bin"11.
3.
如果应用使用的是不支持FOTA的固件,要将eagle.
irom0.
text.
bin下载到哪里11.
4.
云端升级失败有哪些原因21.
5.
如何通过我自己的服务器进行云端升级21.
6.
如何使用我自己的云服务器进行云端升级21.
7.
ESP8266如何和云端服务器进行交互21.
8.
SmartCong配网配不上有哪些原因31.
9.
SmartCong支持的APP对应的版本是什么31.
10.
ESP8266支持HTTP服务端吗41.
11.
如何通过AT指令发HTTP包41.
12.
如何在AT+指令中定义自己的函数如何在函数之间传递参数51.
13.
微信中的近场发现中使用的ProductID是从哪里来的51.
14.
ESP8266如何添加自定义AT命令,自定义AT命令字段和参数段长度限制是多少62.
云平台72.
1.
在乐鑫的云平台上,设备的生命周期是怎样的73.
系统83.
1.
ESP8266的看门狗是什么作用83.
2.
看门狗的超时间隔是多少触发超时事件会有什么现象83.
3.
如果我的应用不需要看门狗,如何关闭看门狗83.
4.
如果我要在程序里面引入10秒的延迟,怎么做最好83.
5.
对于Non-OSSDK,memoryleak问题如何debug93.
6.
对于RTOSSDK,memoryleak问题如何debug93.
7.
如何优化ESP8266应用的内存使用93.
8.
发生"fatalexception"问题如何处理113.
9.
ESP8266总共有几个timer113.
10.
使用timer中断是否有特定条件113.
11.
如何调整TxPower113.
12.
为什么ESP8266_Non-OS_SDK中有的函数前面添加了"ICACHE_FLASH_ATTR"宏123.
13.
为什么编译Non-OSSDK时会发生IRAM_ATTR错误123.
14.
为什么编译的时候会发生"irom0_0_seg"错误123.
15.
ESP8266有main吗133.
16.
操作指针有什么需要注意的133.
17.
RTOSSDK和Non-OSSDK有何区别133.
18.
哪些接口需要在user_init中调用,否则容易出现问题,或者不生效143.
19.
Light-sleep如何通过GPIO或网络事件唤醒153.
20.
ESP8266FRC1的hw_timer如何使用153.
21.
如何让ESP8266上电后快速连接AP163.
22.
为什么ESP8266进入启动模式(2,7)并触发看门狗复位173.
23.
ESP8266上电时打印的boot模式信息代表什么如何改变boot模式173.
24.
为什么ESP8266启动时打印ets_main.
c,并且无法正常运行184.
硬件194.
1.
ESP8266电压电流需求194.
2.
设计ESP8266的供电时,需要注意哪些问题194.
3.
ESP8266上电时电流很大,是什么原因194.
4.
可以使用锂电池或者两节AA纽扣电池直接给ESP8266供电吗194.
5.
SPIFlash上电时,是否有特殊需求204.
6.
上电时序是怎样的,boot模式是如何选择的204.
7.
ESP8266的RAM的使用结构是怎么的215.
外设225.
1.
ADC的性能参数有几个通道采样率和有效位数是多少225.
2.
从哪里可以得到ADC的寄存器"bitmap"信息225.
3.
ADC的精度如何225.
4.
内部ADC的用途是什么225.
5.
(u8tx_addr,u8tx_cmd,u8tx_rep)这三个参数是什么意思225.
6.
为什么ESP8266上电时会出现乱码如何修改波特率235.
7.
如何使能UART流控235.
8.
如何配置信息打印到UART1上245.
9.
SDIO是否支持SD卡255.
10.
SDIO最高速度能支持到多少255.
11.
为什么上电时会有LED灯闪一下的情况255.
12.
使用PWM时,发现最开始时有窄波,是什么原因255.
13.
发现PWM的变化缓慢,是什么原因255.
14.
GPIO可以直接连5V吗255.
15.
哪里能找到GPIO的register和bitmap信息255.
16.
如何编程GPIO265.
17.
HSPI每个数据包的大小最大是多少265.
18.
对于多设备同时连接到ESP8266的情况,HSPI是如何同时驱动设备的275.
19.
如何使用64字节的数据缓存275.
20.
如何配置(H)SPI接口275.
21.
哪些API会保存到Flash275.
22.
系统参数是如何保存的275.
23.
Flash任何位置都可以随意读写吗285.
24.
可以在所有的ESP8266上执行同样的Flash读写操作吗285.
25.
可否提供Flash擦写例证285.
26.
如何判断Flash是否支持QIO或DIO模式305.
27.
为什么透传过程会丢包305.
28.
ESP8266有几个UART305.
29.
GPIO电平状态是怎样的305.
30.
如何屏蔽上电打印316.
协议326.
1.
TCP/UDP的包长是多少327.
RF337.
1.
如何修改默认上电校准方式338.
Wi-Fi348.
1.
设备开启SoftAP+Station模式下,连接的路由是192.
168.
4.
X网段时,为什么会失败34.
.
.
.
.
8.
2.
路由配置是正确的,但是发生找不到路由,连接失败,为什么348.
3.
调用wi_softap_set_cong()时,函数返回成功,但为何无法修改ESP8266的SoftAPSSID和密码348.
4.
ESP8266SoftAP+Station模式下网络断开或丢包的情况358.
5.
Wi-Fi信道是什么可以自行选择信道吗368.
6.
如何配置ESP8266,以便连接到无线路由器369.
工具379.
1.
测试和生产时如何烧录Flash37!
1.
应用1.
应用1.
1.
为什么云端升级需要2个BIN文件"user1.
bin"和"user2.
bin"有什么区别user1.
bin和user2.
bin是2个不同的BIN文件.
生成user1.
bin和user2.
bin时,必须使用相同的Flash和boot设置,以保证OTA升级成功.
2个BIN文件是互补的,运行user1.
bin的时候,升级是下载user2.
bin;运行user2.
bin的时候,升级是下载user1.
bin.
这样可以保证升级过程中,如果有掉线的情况发生,设备还是可以正常运行.
1.
2.
如何生成"user1.
bin"和"user2.
bin"编译环境下,执行gen_misc.
sh分别得到user1.
bin和user2.
bin.
步骤如下:1.
使用正确的Flash和boot配置,编译生成user1.
bin.
2.
执行makeclean,以便清除之前的残余信息.
3.
使用相同的Flash和boot配置,编译生成user2.
bin.
1.
3.
如果应用使用的是不支持FOTA的固件,要将eagle.
irom0.
text.
bin下载到哪里对于Non-OSSDK和RTOSSDK,固件BIN文件的位置取决于合适的链接脚本内容.
如果应用中使用的是不支持FOTA的固件,则用户代码包含在eagle.
irom0.
text.
bin中.
该BIN文件在Flash中的位置是由SDK/ld中的链接脚本eagle.
app.
v6.
ld决定的.
!
注意:在所有版本ESP8266SDK中,eagle.
irom0.
text.
bin的默认位置并不都是一样的.
用户可以确认在自己的ESP8266SDK版本中,该BIN文件在Flash中的位置.
如下图所示:Espressif!
/!
1382019.
03!
1.
应用图中标蓝的数字表示eagle.
irom0.
text.
bin在Flash中的地址.
在上图的例子中,该地址为0x10000.
1.
4.
云端升级失败有哪些原因云端升级的详细介绍参考文档《ESP8266FOTA云端升级指南》.
请先检查以下问题:确认使用了正确大小的Flash.
确认是否烧录了blank.
bin做初始化.
确认user1.
bin和user2.
bin下载到了正确的地址.
确认生成user1.
bin和user2.
bin使用了相同的Flash、boot配置.
1.
5.
如何通过我自己的服务器进行云端升级如果通过客户自己的服务器升级,请确认服务器满足下面的要求.
1.
发送HEAD指令到云端服务器,询问待升级的BIN文件长度,服务器回复的HTTP包头中要求带有BIN文件的长度信息.
2.
根据上述方法查询到的BIN文件长度,在ESP8266模块的Flash待升级区域,擦除该指定长度(spi_flash_erase_sector),等待下载.
3.
发送GET指令,从服务器下载BIN文件,写入到Flash的待升级区域.
1.
6.
如何使用我自己的云服务器进行云端升级客户可以使用自己的云服务器,但是要能支持HTTP请求,并可以支持设备控制功能.
云端的API,请见:http://iot.
espressif.
cn/#/api-zh-cn/.
1.
7.
ESP8266如何和云端服务器进行交互可以使用标准HTTP协议连接云服务器.
比如,ESP8266使用如下的HTTP请求.
GET/your-bin-file-path.
binHTTP/1.
1Host:yourdomain.
comConnection:keep-aliveCache-Control:max-age=0Accept:text/html,application/xhtml+xml,application/xml;q=0.
9,image/webp,*/*;q=0.
8User-Agent:Espressif!
/!
2382019.
03!
1.
应用Mozilla/5.
0(X11;Linuxx86_64)AppleWebKit/537.
36(KHTML,likeGecko)Chrome/39.
0.
2171.
95Safari/537.
36Accept-Encoding:gzip,deflate,sdchAccept-Language:en-US,en;q=0.
8,ja;q=0.
6,zh-CN;q=0.
4,zh-TW;q=0.
2客户可以通过下面的方法来debug服务器:telnet请事先确认telnet在您的PC上是可以使用的,或者使用其他的支持telnet的终端软件也可以达到同样的目的,比如TeraTerm.
1.
8.
SmartCong配网配不上有哪些原因请做以下检查:APP版本是否支持SDK版本或SmartCong版本.
手机连接的路由器不能是单5G路由(双频路由器除外).
SmartCong过程中不要调用其他API.
使用AT时,设备没有获得IP之前,不要调用smartcong_stop.
如以上排除,请把连接失败和成功的log发给我们技术做支持分析.
1.
9.
SmartCong支持的APP对应的版本是什么调用smartconfig_start()接口,会有"SCversion:vX.
X.
X"版本信息打印.
这是ESP-TOUCH模块的版本号.
下面是非OS对应的SmartCong版本和APP版本.
注意:HTTP协议规定请求以"\r\n\r\n"为结束,所以在通讯过程中请不要使用这样的组合.
SDK版本SmartCong版本APP版本sdkv1.
2.
0smartcongv2.
4appv0.
3.
4.
xsdkv1.
3.
0smartcongv2.
5appv0.
3.
4.
xsdkv1.
3.
0smartcongv2.
5.
1appv0.
3.
4.
xsdkv1.
4.
0smartcongv2.
5.
2appv0.
3.
4.
xsdkv1.
5.
0smartcongv2.
5.
3appv0.
3.
4.
xsdkv1.
5.
4smartcongv2.
5.
4appv0.
3.
4.
xEspressif!
/!
3382019.
03!
1.
应用1.
10.
ESP8266支持HTTP服务端吗支持.
ESP8266在SoftAP和Station模式下都可以作服务端.
在SoftAP模式下,ESP8266的服务端IP地址是192.
168.
4.
1.
如果Station模式,服务端的IP地址为路由器分配给ESP8266的IP.
如果是基于SDK二次开发,那么需使用espconn结构体和相关API.
如果是使用AT指令,需使用AT+CIPSERVER开启服务端.
1.
11.
如何通过AT指令发HTTP包1.
AT指令配置SoftAP+Station模式:AT+CWMODE=3//setsoftAP+stationmode2.
AT指令连接路由:AT+CWJAP="SSID","password"//ESP8266stationconnecttorouter3.
创建TCP连接,按照HTTP包的格式发送数据,如下图红框标注,请注意,HTTP包中的换行符[(0x0d0x0a)or(CRLF)]是必须的,不能省去.
!
4.
收到HTTP包的回复.
!
Espressif!
/!
4382019.
03!
1.
应用1.
12.
如何在AT+指令中定义自己的函数如何在函数之间传递参数在Non-OSSDK中的AT示例(\ESP8266_NONOS_SDK\examples\at\user\user_main.
c)中有提供如何实现一条自定义的AT指令"AT+TEST".
结构体at_funcationType用于定义一条指令的四种类型,例如指令名称"AT+TEST".
类型at_testCmd:测试指令,对应指令为AT+TEST=,AT示例中注册的实现回调为at_testCmdTest,测试指令可以设计为返回参数的取值范围;注册为NULL,则无测试指令.
类型at_queryCmd:查询指令,对应指令为AT+TEST,AT示例中注册的实现回调为at_queryCmdTest,查询指令可以设计为返回当前值;注册为NULL,则无查询指令.
类型at_setupCmd:设置指令,对应指令格式为AT+TEST=parameter1,parameter2,.
.
.
.
.
.
,AT示例中注册的实现回调为at_setupCmdTest,设置指令可以设计用于设置参数值;注册为NULL,则无设置指令.
类型at_exeCmd:执行指令,对应指令为AT+TEST,AT示例中注册的实现回调为at_exeCmdTest,执行指令可以设计用于执行某项操作;注册为NULL,则无执行指令.
1.
13.
微信中的近场发现中使用的ProductID是从哪里来的需要建立一个deviceID,比如在客户的微信号下,建立了一个ID=1234的设备.
通过如下命令curl-q"https://api.
weixin.
qq.
com/cgi-bin/tokengrant_type=client_credential&appid=wx0f74f861897f84b5&secret=your_WeChatname_32characters_please"//注:目的是得到accesstoken.
("your_WeChatname_32characters_please"代表客户的微信API应用秘钥,申请获得,应该为32个字符.
)返回:{"access_token":"L2_2V1E98Vk-jTXenXDZjDT0GaudUn_VGTRa7O98hdfT0lTZa2B7nj6YvXN01gssQa3ZraRgjALuCvxd-SamuPR885KJabaw1EYLA0kns-Yglr4ryolEhHb-QcnWMaNqSEDjACANZY","expires_in":7200}curl-d'{"device_num":"1","device_list":[{"id":"1234","mac":"18fe3497d500","connect_protocol":"4","auth_key":"00000000000000000000000000000000","close_strategy":"1","conn_strategy":"1","crypt_method":"0","auth_ver":"0","manu_mac_pos":"-2","ser_mac_pos":"-2"}],"op_type":"0","product_id":5157}'"https://api.
weixin.
qq.
com/device/Espressif!
/!
5382019.
03!
1.
应用authorize_deviceaccess_token=L2_2V1E98Vk-jTXenXDZjDT0GaudUn_VGTRa7O98hdfT0lTZa2B7nj6YvXN01gssQa3ZraRgjALuCvxd-SamuPR885KJabaw1EYLA0kns-Yglr4ryolEhHb-QcnWMaNqSEDjACANZY"//注:建立一个ID=1234的设备.
这样,您只需要使用AT指令AT+CWSTARTDISCOVER="gh_9e2cff3dfa51","1234",1即可("gh_9e2cff3dfa51"是您的微信公众号名字).
1.
14.
ESP8266如何添加自定义AT命令,自定义AT命令字段和参数段长度限制是多少客户可以基于ESP8266_NONOS_SDK\examples\at示例代码,在ESP8266自带AT命令的基础上,添加客户自定义的AT命令.
关于自定义AT命令,SDK限制整条AT命令数据长度最大128字节(含结束符"\r\n"),不单独限制命令段和参数段.
例如:AT+CMDTEST=param1,param2,param3,….
paramN\r\n则:strlen("AT+CMDTEST=param1,param2,param3,.
.
.
.
paramN\r\n")=236KBytes:很抱歉,您的代码量太大了,只能换大些的Flash.
(2)如果sizeofeagle.
flash.
bin+sizeofeagle.
irom0text.
bin<236KBytes:请继续步骤2.
2.
在路径SDK/ld下修改文件"eagle.
app.
v6.
new.
512.
app1.
ld".
irom0_0_segorg=0x40201010,len=0x2B000根据步骤1中编译的"eagle.
irom0text.
bin"大小,改写上述len的值.
示例:如果"eagle.
irom0text.
bin"大小为179KB,则可修改配置如下:irom0_0_segorg=0x40201010,len=0x2D0003.
重新编译user1.
bin选择boot_v1.
2+.
补充说明:代码中,函数前未加ICACHE_FLASH_ATTR的,编译到IRAM中,最大32KB;函数前加了ICACHE_FLASH_ATTR的,编译到IROM中;因为RAM的空间有限,因此做了这两个部分的区分:IRAM中的代码,会在上电初始就完整加载到RAM中;IROM中的代码是用到的时候才从Flash加载到cache中执行.
3.
15.
ESP8266有main吗ESP8266没有main,程序入口为user_init.
3.
16.
操作指针有什么需要注意的内存必须4字节对齐读取,指针做转换时请确保为4字节对齐,否则转换失败,不能正常使用.
例如,请勿直接指针转换floattemp=*((float*)data);而是使用os_memcpy(memcpy)实现.
3.
17.
RTOSSDK和Non-OSSDK有何区别主要差异点如下:Espressif!
/!
13382019.
03!
3.
系统Non-OSSDKNon-OSSDK主要使用定时器和回调函数的方式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的.
Non-OSSDK使用espconn接口实现网络操作,用户需要按照espconn接口的使用规则进行软件开发.
RTOSSDK1.
RTOS版本SDK使用freeRTOS系统,引入OS多任务处理的机制,用户可以使用freeRTOS的标准接口实现资源管理、循环操作、任务内延时、任务间信息传递和同步等面向任务流程的设计方式.
具体接口使用方法参考freeRTOS官方网站的使用说明或者USINGTHEFREERTOSREALTIMEKERNEL-APracticalGuide这本书中的介绍.
2.
RTOS版本SDK的网络操作接口是标准lwIPAPI,同时提供了BSDSocketAPI接口的封装实现,用户可以直接按照socketAPI的使用方式来开发软件应用,也可以直接编译运行其他平台的标准Socket应用,有效降低平台切换的学习成本.
3.
RTOS版本SDK引入了cJSON库,使用该库函数可以更加方便的实现对JSON数据包的解析.
4.
RTOS版本兼容Non-OSSDK中的Wi-Fi接口、SmartCong接口、Sniffer相关接口、系统接口、定时器接口、FOTA接口和外围驱动接口,不支持AT实现.
3.
18.
哪些接口需要在user_init中调用,否则容易出现问题,或者不生效1.
wifi_set_ip_info、wifi_set_macaddr仅在user_init中调用生效,其他地方调用不生效.
2.
system_timer_reinit建议在user_init中调用,否则调用后,需要重新arm所有timer.
3.
wifi_station_set_config如果在user_init中调用,底层会自动连接对应路由,不需要再调用wifi_station_connect来进行连接.
否则,需要调用wifi_station_connect进行连接.
4.
wifi_station_set_auto_connect设置上电启动时是否自动连接已记录的路由;例如,关闭自动连接功能,如果在user_init中调用,则当前这次上电就不会自动连接路由,如果在其他位置调用,则下次上电启动不会自动连接路由.
Espressif!
/!
14382019.
03!
3.
系统3.
19.
Light-sleep如何通过GPIO或网络事件唤醒在Light-sleep模式下,CPU在暂停状态下不会响应来自外围硬件接口的信号与中断,因此需要配置通过外部GPIO信号将ESP8266唤醒,唤醒过程小于3ms.
wifi_station_disconnect();wifi_set_opmode(NULL_MODE);//setWiFimodetonullmodewifi_fpm_set_sleep_type(LIGHT_SLEEP_T);wifi_fpm_open(PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);gpio_pin_wakeup_enable(13,GPIO_PIN_INTR_LOLEVEL);//建议低电平唤醒wifi_fpm_set_wakeup_cb(ssc_fpm_wakup_call);wifi_fpm_do_sleep(FPM_SLEEP_MAX_TIME);3.
20.
ESP8266FRC1的hw_timer如何使用1.
模型:!
(1)FRC1的参考时钟为80M,分频系数可以配置为1分频,16分频,256分频,不同的分频,影响每个tick的时长.
(2)FRC1为递减型timer,当COUNT_VALUE的值减到0后会触发中断.
每一个tick,COUNT_VALUE的值都会减1.
(3)FRC1可以配置为自动填装模式和非自动填装模式.
自动填装模式:当发生中断后,COUNT_VALUE会自动取FRC1_LOAD_VALUE的值,放到本身,做自减操作.
非自动填装模式:当发生中断后,COUNT_VALUE会切到最大值0x7fffff开始计.
Espressif!
/!
15382019.
03!
3.
系统(4)FRC1的中断可以配置为FRC1中断源和NMI中断源.
NMI中断被称为CPU不可屏蔽中断.
NMI中断在ESP8266对应LEVEL3的中断,其他中断对应LEVEL1的中断,NMI中断可以打断任意比其优先级低的中断.
2.
关于SDKHW_TIMER的注意事项SDK中hw_timer的分频系数为16,每个tick的时长为0.
2μs.
hw_timer_arm函数配置的参数单位为μs,最大值为1677000μs.
3.
21.
如何让ESP8266上电后快速连接APESP8266与某个AP连接后,会将该AP的信道信息存储在RTCmemory中.
当软件复位ESP8266,或ESP8266从Deep-sleep模式中唤醒之后,ESP8266会从RTCmemory中读取AP的信道信息,并尝试连接该信道中的AP.
但如果上电启动或硬件复位ESP8266,RTCmemory会被清空.
因此,ESP8266会扫描所有的信道,这会占用一些时间.
用户上电启动或硬件复位ESP8266时,可通过以下方式存储AP的信道信息,以避免ESP8266重新扫描所有信道寻找上次连接的AP.
这将有助于减少ESP8266启动后的连接时间.
在ESP8266与AP连接后,调用函数wifi_get_channel来读取当前AP的信道信息,然后将该信息存储到SPIFlash中.
在写入AP的信道信息之前,请确保该信道信息有效.
ESP8266上电或硬件复位时,用户固件将从Flash中读取之前存储的信道信息.
通过调用函数WRITE_PERI_REG(0x600011f4,1<<16|channel)将该AP的信道信息写入RTCmemory中.
之后便可以从RTCmemory获取信道信息,加快ESP8266与AP的连接.
使能自动连接功能后,ESP8266会从RTCmemory中读取AP的信道信息,并尝试连接该信道中的AP.
只有信道信息会被存储在RTCmemory中.
当调用函数wifi_station_set_config时,配置的其它信息(比如SSID和密码)已存储在Flash中.
注意:如果应用要求ESP8266频繁上电或硬件复位,建议客户使用片外RTCmemory来备份信道信息.
由于Flash内存的写入周期有限,不建议对Flash内存频繁地写入.
Espressif!
/!
16382019.
03!
3.
系统3.
22.
为什么ESP8266进入启动模式(2,7)并触发看门狗复位请确保ESP8266启动时,strapping管脚处于所需的电平.
如果外部连接的外设使strapping管脚进入到错误的电平,ESP8266可能进入错误的操作模式.
在无有效程序的情况下,看门狗计时器将复位芯片.
因此在设计实践中,建议仅将strapping管脚用于连接高阻态外部器件的输入,这样便不会在上电时强制strapping管脚为高/低电平.
3.
23.
ESP8266上电时打印的boot模式信息代表什么如何改变boot模式ESP8266上电时会判断bootstrapping管脚的状态,并决定boot模式.
例如,ESP8266上电时打印的boot模式信息如下:etsJan82013,rstcause:1,bootmode:(3,2)其中打印的bootmode的第一位数字(3)代表当前的boot模式.
Boot模式由strapping管脚的3位值[GPIO15,GPIO0,GPIO2]共同决定.
如下表所示:Strapping管脚的3位值/[GPIO15,GPIO0,GPIO2]Boot模式7/[1,1,1]SDIOHighSpeedV2IO6/[1,1,0]SDIOLowSpeedV1IO5/[1,0,1]SDIOHighSpeedV1IO4/[1,0,0]SDIOLowSpeedV2IO3/[0,1,1]FlashBoot2/[0,1,0]JumpBoot1/[0,0,1]UARTBoot0/[0,0,0]RemappingEspressif!
/!
17382019.
03!
3.
系统3.
24.
为什么ESP8266启动时打印ets_main.
c,并且无法正常运行ESP8266启动时打印ets_main.
c,表示没有可运行的程序区,无法运行;遇到这种问题时,请检查烧录时的bin文件和烧录地址是否正确.
Espressif!
/!
18382019.
03!
4.
硬件4.
硬件4.
1.
ESP8266电压电流需求ESP8266的数字部分的电压范围是1.
8V~3.
3V.
模拟部分的工作电压是3.
0V~3.
6V,最低2.
7V.
模拟电源峰值350mA.
数字电源峰值200mA.
注意:选择的SPIFlash工作电压也需要与GPIO的电压匹配.
CHIP_EN还是工作在3.
0~3.
6V,使用1.
8VGPIO控制时需要注意电平转换.
4.
2.
设计ESP8266的供电时,需要注意哪些问题请注意如下几点:1.
如果是使用LDO变压,请确保输入电压和输出电压要足够大.
2.
电源轨去耦电容器必须接近ESP8266摆放,等效电阻要足够低.
3.
ESP8266不能直连5V电压.
4.
如果是通过DC-DC给ESP8266供电,必要时要加上LC滤波电路.
4.
3.
ESP8266上电时电流很大,是什么原因ESP8266的RF和数字电路具有极高的集成度.
上电后,RF自校准会需要大电流.
模拟部分电路最大的极限电路可能达到500mA;数字电路部分最大电流达到200mA.
一般的操作,平均电流在100mA左右.
因此,ESP8266需要供电能达到500mA,能够保证不会有瞬间压降.
4.
4.
可以使用锂电池或者两节AA纽扣电池直接给ESP8266供电吗两节AA纽扣电池可以给ESP8266供电.
锂电池放电时压降比较大,不适合直接给ESP8266供电.
ESP8266的RF电路会受温度及电压浮动影响.
不推荐不加任何校准的电源直接给ESP8266供电.
推荐使用DC-DC或者LDO给ESP8266供电.
Espressif!
/!
19382019.
03!
4.
硬件4.
5.
SPIFlash上电时,是否有特殊需求SPIFlash用于存储用户的程序和数据.
为了保证兼容性,SPIFlash的电压应该和GPIO的电压相匹配.
4.
6.
上电时序是怎样的,boot模式是如何选择的CHIP_EN上电时序要求:CHIP_EN芯片使能管脚,内部无上拉,高电平有效.
CHIP_EN的上电要晚于或同时与系统电源3.
3V上电.
一般CH_EN有外接RC电路,延时大概在μs级即可.
CHIP_EN拉高大概60ms后,设备判断bootmode{GPIO15,GPIO0,GPIO2},之后UART即可通讯.
EXT_RSTB:外部复位管脚,内部有上拉,悬空即为高电平.
EXT_RSTB为电平触发,低电平触发芯片复位.
如果是外部给ESP8266EX的reset信号,则最低要求(0.
25VIO,100μs).
!
描述最小值最大值单位t1VDD33上升时间102000μst2EXT_RSTB上升时间02mst3EXT_RSTB电平在VDD33电平为高后上升0.
1-mst4CHIP_EN上升时间02mst5CHIP_EN电平在EXT_RSTB电为高后上升0.
1-msEspressif!
/!
20382019.
03!
4.
硬件4.
7.
ESP8266的RAM的使用结构是怎么的ESP8266的RAM总共160KB.
IRAM空间为64KB:前32KB用作IRAM,用来存放没有加ICACHE_FLASH_ATTR的代码,即.
text段,会通过ROMcode或二级boot从SPIFlash中的BIN中加载到IRAM;后32KB被映射作为iCache,放在SPIFlash中的,加了ICACHE_FLASH_ATTR的代码会被从SPIFlash自动动态加载到iCache.
DRAM空间为96KB:对于Non-OS_SDK,前80KB用来存放.
data/.
bss/.
rodata/heap,heap区的大小取决于.
data/.
bss/.
rodata的大小;还有16KB给ROMcode使用.
对于RTOS_SDK,96KB用来存放.
data/.
bss/.
rodata/heap,heap区的大小取决于.
data/.
bss/.
rodata的大小.
Espressif!
/!
21382019.
03!
5.
外设5.
外设5.
1.
ADC的性能参数有几个通道采样率和有效位数是多少通道:1采样率:停止Wi-Fi的情况下,能达到每秒100000次.
Wi-Fi正常工作的情况下,能达到每秒1000次.
有效位数:内部ADC有效位数为12位.
system_adc_read()//API返回值的有效位数是10位.
5.
2.
从哪里可以得到ADC的寄存器"bitmap"信息ADC是和内部RF电路高度集成的,所以bitmap和寄存器信息没有公开,如有特殊需求请与技术支持联系.
5.
3.
ADC的精度如何ESP8266连接路由器后,单STA模式会进入modem-sleep,导致芯片内部电流发生变化,参考值变化,因此ADC采集异常.
用户如果需要测量的非常准确,可以用system_adc_fast_read的函数,但是测量之前需要关闭RF,Wi-Fi连接会断开.
如果需要测试比较准确,数值相差1,或2,可以配置Wi-Fi为non-sleep模式wifi_set_sleep_type(NONE_SLEEP_T);建议该用户这样配置.
如果对精确性要求不高,可以允许模块进入sleep模式,功耗较低.
5.
4.
内部ADC的用途是什么内部ADC可以用于温度检测和粗略地测量外部设备电流.
由于ADC容易受噪声影响,所以推荐只在低精度的需求时使用.
比如熔断机制.
5.
5.
(u8tx_addr,u8tx_cmd,u8tx_rep)这三个参数是什么意思tx_addr是发送地址;Espressif!
/!
22382019.
03!
5.
外设u8tx_cmd是发送指令;u8tx_rep是重复发送的次数.
5.
6.
为什么ESP8266上电时会出现乱码如何修改波特率如果使用的是26MHz晶振,ESP8266UART0上电后的波特率是74880,所以上电时会有乱码.
客户可以在user_main.
c里面修改UART配置,比如:voidICACHE_FLASH_ATTRuart_init(UartBautRateuart0_br,UartBautRateuart1_br){//romuse74880baut_rate,herereinitializeUartDev.
baut_rate=uart0_br;uart_config(UART0);UartDev.
baut_rate=uart1_br;uart_config(UART1);}5.
7.
如何使能UART流控1.
UART通信时,如需配置UART通信的数据格式,请参考SDK/driver_lib/driver/路径下的uart.
c文件.
2.
UART通信,如需配置硬件流控,请执行下面两个步骤:(1)请在uart.
h中将下面的宏置1.
#defineUART_HW_RTS1//set1:enableuarthwflowcontrolRTS,PINMTDO,FORUART0#defineUART_HW_CTS1//set1:enableuarthwflowcontrlCTS,PINMTCK,FORUART0(2)配置硬件流控的门限值截图中红色标注部分为硬件流控的门限值,在RXFIFO中字节数大于110后,RTS会被拉高.
!
Espressif!
/!
23382019.
03!
5.
外设5.
8.
如何配置信息打印到UART1上UART1只有Tx功能,可以在UART0用于通讯时,做打印log用途.
请参考如下代码:voidICACHE_FLASH_ATTRuart_init_new(void){//WaitforFIFOstobeemptiedUART_WaitTxFifoEmpty(UART0);UART_WaitTxFifoEmpty(UART1);//ConfigureUARTsettingsUART_ConfigTypeDefuart_config;uart_config.
baud_rate=BIT_RATE_74880;uart_config.
data_bits=UART_WordLength_8b;uart_config.
parityUSART_Parity_None;uart_config.
stop_bits=USART_StopBits_1;uart_config.
flow_ctrl=USART_HardwareFlowControl_None;uart_config.
UART_RxFlowThresh=120;uart_config.
UART_InverseMask=UART_None_Inverse;UART_ParamConfig(UART0,&uart_config);UART_IntrConfTypeDefuart_intr;uart_intr.
UART_IntrEnMask=UART_RXFIFO_TOUT_INT_ENA|UART_FRM_ERR_INT_ENA|UART_RXFIFO_FULL_INT_ENA;uart_intr.
UART_RX_FifoFullIntrThresh=100;uart_intr.
UART_RX_TimeOutIntrThresh=2;uart_intr.
UART_TX_FifoEmptyIntrThresh=20;UART_IntrConfig(UART0,&uart_intr);//SetUART1forprintingUART_SetPrintPort(UART1);//RegisterinterrupthandlerUART_intr_handler_register(uart0_rx_intr_handler);ETS_UART_INTR_ENABLE();}Espressif!
/!
24382019.
03!
5.
外设5.
9.
SDIO是否支持SD卡ESP8266是SDIOSlave,不支持SD卡.
5.
10.
SDIO最高速度能支持到多少SDIO时钟能到50MHz,理论最高速度是200Mbps.
5.
11.
为什么上电时会有LED灯闪一下的情况要看灯的驱动是如何设计的.
如是低电平灯亮,并且在上电的时候将IO强制拉为低电平,那么在上电的瞬间可能会出现灯闪一下.
是因为除了Flash相关的IO和GPIO4,GPIO5,其他IO上电后上拉默认使能.
解决方法:1.
上电的瞬间,user_init中将上拉关闭.
2.
如第一条无效的,需要我们提供相应的boot.
bin.
在该BIN被搬到RAM的过程里,IO的上拉就会被关闭.
这比user_init生效要早.
5.
12.
使用PWM时,发现最开始时有窄波,是什么原因这个是精度较高的PWM的调节方式,PWM的精度可以达到22222深度.
精度的调节主要靠后面的窄波.
注意这种方式的PWMDuty无法配置为100%.
5.
13.
发现PWM的变化缓慢,是什么原因客户采用了SDKexample/IOT_demo中的渐变API.
如light_set_aim或light_set_aim_r这些API使用的是渐变方式.
不会立即生效,需要渐变的过程.
如用户需要PWMDuty设置后立即生效,需要调用接口pwm_set_duty,需要注意调用pwm_set_duty后要调用pwm_start此次设置才能生效.
5.
14.
GPIO可以直接连5V吗不可以.
GPIO只能承受3.
6V.
需要通过降压电路,否则会造成GPIO损坏.
5.
15.
哪里能找到GPIO的register和bitmap信息请参考文档《ESP8266技术参考》.
Espressif!
/!
25382019.
03!
5.
外设5.
16.
如何编程GPIO对于Non-OSSDK,比如需要把MTDO配置成输入,同时下降沿触发中断:voidICACHE_FLASH_ATTRgpio_init(void){//GPIOAlternateFunctionPIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15);GPIO_DIS_OUTPUT(GPIO_ID_PIN(15)Configureitininputmode.
ETS_GPIO_INTR_DISABLE(ClosetheGPIOinterrupt//RegistertheinterruptfunctionETS_GPIO_INTR_ATTACH(GPIO_INTERRUPT,NULL)gpio_pin_intr_state_set(GPIO_ID_PIN(15),GPIO_PIN_INTR_NEGEDGE);//FallingedgetriggerETS_GPIO_INTR_ENABLE(EnabletheGPIOinterrupt}对于RTOSSDK,实现相同的功能.
{GPIO_ConfigTypeDefgpio_in_cfg;DefineGPIOInitStructuregpio_in_cfg.
GPIO_IntrType=GPIO_PIN_INTR_NEGEDGE;Fallingedgetriggergpio_in_cfg.
GPIO_Mode=GPIO_Mode_Input;Inputmodegpio_in_cfg.
GPIO_Pin=GPIO_Pin_15;EnableGPIOgpio_config(&gpio_in_cfg)InitializationfunctionGPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS,BIT(GPIO_UART_IN_NUM));gpio_intr_handler_register(interrupt_GPIO_UART)Registertheinterruptfunction_xt_isr_unmask(1<17.
HSPI每个数据包的大小最大是多少数据包每次发送最大64字节数据,四字节对齐,在memorymap上是连续的.
数据可以先传输到LSB或者MSB中,低位组在前或高位组在前,所以缓存是很灵活的.
合理的使用buffer,可以稳定实现90%的时钟速度.
注意:Non-OSSDK和RTOSSDK的实现方法稍有不同.
Espressif!
/!
26382019.
03!
5.
外设5.
18.
对于多设备同时连接到ESP8266的情况,HSPI是如何同时驱动设备的与I2C接口不同,HSPI时钟不需要配合最慢的连接设备.
HSPI时钟可以及时的配置为使能的设备.
HSPI_CS0管脚可以自动选择.
对于LCD类型的设备,需要频繁使用CS管脚.
如果是连接高速设备,需要使用源端接电阻.
5.
19.
如何使用64字节的数据缓存使用函数CLEAR_PERI_REG_MASK(SPI_USER(spiNum),SPI_USR_MISO_HIGHPART);使能MISO的高位传输.
5.
20.
如何配置(H)SPI接口请参考Non-OSSDK下,example/peripheral_test.
5.
21.
哪些API会保存到Flashwifi_station_set_auto_connectwifi_station_ap_number_setwifi_set_phy_modewifi_softap_set_configwifi_station_set_configwifi_set_opmodesystem_restart_enhancesystem_restoresystem_upgrade_reboot5.
22.
系统参数是如何保存的SPIFlash的最后三个扇区被定义为系统参数区,其中前两个扇区用于交替保存系统参数,最后一个扇区用来保存使用前面两个扇区的ag.
这样设计的目的是保证在擦写系统参数区时,即使在擦写任意一个扇区时意外掉电,导致该扇区中数据异常的情况下,也不会导致系统的参数异常.
Espressif!
/!
27382019.
03!
5.
外设5.
23.
Flash任何位置都可以随意读写吗读写操作都需要四字节对齐.
我们推荐对block操作,避免频繁的小数据读写.
5.
24.
可以在所有的ESP8266上执行同样的Flash读写操作吗对应不同的Flash大小,有着不同的Flashmap,所以对应不同的固件,Flashmap可能不一样,比如对应8Mbit的Flash,读写0x100000地址就是非法的.
5.
25.
可否提供Flash擦写例证uint32sector是开始的sector,uint32cnt是擦除的sector数目.
#defineFLASH_WRITE_LEN_BYTE(1024*4)#defineFLASH_WRITE_CONTENT(0X10)voidflash_sector_rw_test(uint32sector,uint32cnt){char*w_data=(char*)os_malloc(FLASH_WRITE_LEN_BYTE);uint32flash_operate=0;uint32i=0;uint8status=0;os_printf("TestSectoris0x%x\n",sector);if(NULL==w_data){os_printf("Memorylittle\n");return;}os_memset(w_data,FLASH_WRITE_CONTENT,FLASH_WRITE_LEN_BYTE);for(i=0;i/!
28382019.
03!
5.
外设if(spi_flash_write((sector+i)*(FLASH_WRITE_LEN_BYTE),(uint32*)w_data,FLASH_WRITE_LEN_BYTE)==0)os_printf("writesector0x%xok\n",sector+i);else{os_printf("Err:writesector0x%xerr\n",sector+i);}for(i=0;i=FLASH_WRITE_CONTENT){os_printf("ErrFlashreadw_data[%d]=0x%x\n",j,w_data[j]);status=1;if(*(w_data+j)==FLASH_WRITE_CONTENT&&j==FLASH_WRITE_LEN_BYTE-1)os_printf("Sector0x%xTestOk\n",sector+i);}else{os_printf("Err:readsector0x%xerr\n",sector+i);}os_free(w_data);w_data=NULL;}Espressif!
/!
29382019.
03!
5.
外设5.
26.
如何判断Flash是否支持QIO或DIO模式判断Flash是否支持四线:1.
QE在状态寄存器的BIT(9).
2.
写状态寄存器的格式为01H+StatusReg1+StatusReg2.
3.
有读Flash的如下命令:若是选择QIO,必须支持EBh命令.
若是选择QOUT,必须支持6Bh命令.
判断Flash是否支持两线:有读Flash的如下命令:若是选择DIO,必须支持BBh命令若是选择DOUT,必须支持3Bh命令.
特殊的Flash:ISSIFlash可以支持QIO模式.
5.
27.
为什么透传过程会丢包因为没有设置硬件流控.
如果需要避免丢包,请设置硬件流控.
透传功能使用的是TCP协议,每包数据是1460(取决于协议栈),只要网络良好,buffer空间没有被消耗完,就可以不停地传输数据.
对于透传,串口接收数据间隔超过约20ms,就会认为数据接收结束,将已经接受的数据传输到网络.
如果网络不好,就可能会丢弃一些数据,因此,为避免这种情况,可以将串口设置为流控模式.
5.
28.
ESP8266有几个UARTESP8266有两个UART,其中UART0有TX、RX,可做数据传输;UART1由于RX脚被SPI-Flash占用,只能使用TX,可以做串口调试信息打印.
5.
29.
GPIO电平状态是怎样的除了XPD_DCDC,GPIO可以配置上拉.
关于GPIO的上电IO口默认状态为:除了SDIO6根线、GPIO4、GPIO5、GPIO16上电IO默认无上拉,其他的GPIO口均有上拉.
由于是内部配置上拉,所以如需下拉,需外部加下拉方式或者加一个三级管的反相电路.
Espressif!
/!
30382019.
03!
5.
外设!
5.
30.
如何屏蔽上电打印U0TXD默认上电有系统打印,对此敏感应用可通过UART的内部引脚交换功能,在初始化的时候,调用system_uart_swap函数,将U0TXD、U0RXD分别与U0RTS(MTDO/GPIO15),U0CTS(MTCK/GPIO13)交换来屏蔽该上电的系统打印.
交换后,硬件上的下载管脚还是使用U0TXD+U0RXD,通信时需要将MTDO对应接到MCU的RXD,MTCK对应接到MCU的TXD.
注意:GPIO不能到5V.
GPIO4/5外接1M电阻不能上拉到高电平;需100K电阻.
Espressif!
/!
31382019.
03!
6.
协议6.
协议6.
1.
TCP/UDP的包长是多少单包数据,TCP单包1460字节,UDP单包1472字节.
Espressif!
/!
32382019.
03!
7.
RF7.
RF7.
1.
如何修改默认上电校准方式上电时RF初始化默认采用部分校准的方案esp_init_data_default.
bin中第115字节为0x01,RF初始化时间较短.
不关注上电启动时间,可修改使用上电全校准方案-使用NONOSSDK及RTOSSDK3.
0以前的版本:a)在user_pre_init或user_rf_pre_init函数中调用system_phy_set_powerup_option(3);b)修改phy_init_data.
bin中第115字节为0x03.
-使用RTOSSDK3.
0及以后版本:a)在menuconfig中关闭CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE;b)如果在menuconfig中开启了CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION,修改phy_init_data.
bin中第115字节为0x03;如果没有开启CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION,修改phy_init_data.
h中第115字节为0x03.
继续使用上电部分校准方案,若需在业务逻辑中增加触发全校准操作的功能-使用NONOSSDK及RTOSSDK3.
0以前的版本:擦除RF参数区中的内容,触发全校准操作-使用RTOSSDK3.
0及以后版本:擦除NVS分区中的内容,触发全校准操作Espressif!
/!
33382019.
03!
8.
Wi-Fi8.
Wi-Fi8.
1.
设备开启SoftAP+Station模式下,连接的路由是192.
168.
4.
X网段时,为什么会失败ESP8266SoftAP默认IP地址是192.
168.
4.
1.
ESP8266如果要连接192.
168.
4.
X的路由时,不能分辨是要连接自己本身的SoftAp还是外部路由,所以会造成错误.
8.
2.
路由配置是正确的,但是发生找不到路由,连接失败,为什么如果SSID和密码配置是正确的,可能的原因有2个.
1.
推荐使用英文字符,不要使用中文.
2.
需要注意bssid_set的设置,如果不需要指定路由的MAC地址,那么需配置stationConf.
bssid_set=0.
8.
3.
调用wi_softap_set_cong()时,函数返回成功,但为何无法修改ESP8266的SoftAPSSID和密码使用函数wifi_softap_set_config()时,如果API从回调函数内部调用,ESP8266SoftAP的配置有时候会修改失败.
例如,当应用程序试图在SoftAP事件的回调函数内,从SoftAP模式切换到Station模式时,可能出现这种情况.
为确保wifi_softap_set_config()所做的修改立即生效,请使用system_os_task()API创建一个更改SoftAP设置的任务.
在调用任何SoftAPAPI之前,请确保ESP8266已成功切换到SoftAP模式.
例如:LOCALvoidICACHE_FLASH_ATTRsome_callback_function(void){unsignedcharres;os_event_t*testQueue;res=wifi_set_opmode_current(0x02)确保ESP8266处于SoftAP模式.
os_printf("\r\nSetopmodereturned:%d",res);testQueue=(os_event_t*)os_malloc(sizeof(os_event_t)*4);Espressif!
/!
34382019.
03!
8.
Wi-Fisystem_os_task(set_ap_config,USER_TASK_PRIO_1,testQueue,4);ap_server_setup(AP_PORT)继续设置服务器等.
}voidset_ap_config(os_event_t*e){structsoftap_configap;wifi_softap_get_config(&ap)先获得之前的设置.
os_memset(ap.
ssid,0,32);os_memset(ap.
password,0,64);os_memcpy(ap.
ssid,"SSIDhere",8);os_memcpy(ap.
password,"PASSWDhere",10);ap.
authmode=AUTH_WPA2_PSK;ap.
ssid_len=0;或者SSID的实际长度.
ap.
max_connection=1;允许接入Station的最大数量.
wifi_softap_set_config(&ap)更新ESP8266SoftAP设置.
}8.
4.
ESP8266SoftAP+Station模式下网络断开或丢包的情况虽然ESP8266支持SoftAP+Station共存模式,但是ESP8266实际只有一个硬件信道,由ESP8266Station与SoftAP接口共用.
因此在SoftAP+Station模式时,ESP8266SoftAP会动态调整信道值与ESP8266Station一致.
这个限制会导致ESP8266SoftAP+Station模式时一些行为上的不便,用户请注意.
例如:情况一-如果ESP8266Station连接到一个路由(假设路由信道号为6);-通过接口wifi_softap_set_config设置ESP8266SoftAP;-若设置值合法有效,该API将返回true,但信道号仍然会自动调节成与ESP8266Station接口一致,在这个例子里也就是信道号为6.
情况二-调用接口wifi_softap_set_config设置ESP8266SoftAP(例如信道号为5);-其他Station连接到ESP8266SoftAP;Espressif!
/!
35382019.
03!
8.
Wi-Fi-将ESP8266Station连接到路由(假设路由信道号为6);-ESP8266SoftAP将自动调整信道号与ESP8266Station一致(信道6);-由于信道改变,之前连接到ESP8266SoftAP的Station的Wi-Fi连接断开.
情况三-其他Station与ESP8266SoftAP建立连接;-如果ESP8266Station一直尝试扫描或连接某路由,可能导致ESP8266SoftAP端的连接断开,或者UDP丢包,ping丢包等情况.
因为ESP8266Station会遍历各个信道查找目标路由,意味着ESP8266其实在不停切换信道,ESP8266SoftAP的信道也因此在不停更改.
这可能导致ESP8266SoftAP端的原有连接断开,或者UDP丢包,ping丢包等情况.
这种情况,用户可以通过设置定时器,超时后调用wifi_station_disconnect停止ESP8266Station不断连接路由的尝试;或者在初始配置时,调用wifi_station_set_reconnect_policy和wifi_station_set_auto_connect禁止ESP8266Station尝试重连路由.
8.
5.
Wi-Fi信道是什么可以自行选择信道吗信道指的是Wi-Fi使用的指定频段中特定频率的波段.
不同国家地区使用的信道数目是不同的.
用户可以参考《ESP8266Wi-Fi信道选择指南》.
8.
6.
如何配置ESP8266,以便连接到无线路由器有关配置连接无线路由器,一般有以下几种方式:1.
smartcong一键配置方式,设备在sniffer模式扫描特征包的方式.
2.
设备开启SoftAP,手机连接SoftAP后建立稳定的TCP/UDP连接后,发送SSID和密码.
3.
WPS配置方式,此方式需要设备中增加按键;或连接到设备的SoftAP后使用手机软件控制开启WPS.
Espressif!
/!
36382019.
03!
9.
工具9.
工具9.
1.
测试和生产时如何烧录Flash测试时,通过UART转USB芯片,使用乐鑫提供的Flash下载工具进行烧录,具体方法参见文档《ESP8266SDK入门指南》.
下载工具:http://espressif.
com/zh-hans/support/download/other-tools下载方法:http://espressif.
com/zh-hans/support/download/documents生产时,使用UART接口烧录Flash不方便,使用厂商提供的下载工具可以加快这一过程.
用户可以使用乐鑫的Flash下载工具把BIN文件合成一个完整的固件,通过Flash厂商提供的下载器,下载到Flash里面,再贴片到模组或产品上.
说明:Flashmode,Flashspeed,Flashsize选项要在combine前选好,再执行combine键,即可得到target.
bin.
Espressif!
/!
37382019.
03免责申明和版权公告本文中的信息,包括供参考的URL地址,如有变更,恕不另行通知.
文档"按现状"提供,不负任何担保责任,包括对适销性、适用于特定用途或非侵权性的任何担保,和任何提案、规格或样品在他处提到的任何担保.
本文档不负任何责任,包括使用本文档内信息产生的侵犯任何专利权行为的责任.
本文档在此未以禁止反言或其他方式授予任何知识产权使用许可,不管是明示许可还是暗示许可.
Wi-Fi联盟成员标志归Wi-Fi联盟所有.
蓝牙标志是BluetoothSIG的注册商标.
文中提到的所有商标名称、商标和注册商标均属其各自所有者的财产,特此声明.
版权归2019乐鑫所有.
保留所有权利.
乐鑫IoT团队www.
espressif.
com

统计一下racknerd正在卖的超便宜VPS,值得推荐的便宜美国VPS

racknerd从成立到现在发展是相当迅速,用最低的价格霸占了大部分低端便宜vps市场,虽然VPS价格便宜,但是VPS的质量和服务一点儿都不拉跨,服务器稳定、性能给力,尤其是售后方面时间短技术解决能力强,估计这也是racknerd这个品牌能如此成功的原因吧! 官方网站:https://www.racknerd.com 多种加密数字货币、信用卡、PayPal、支付宝、银联、webmoney,可...

两款半月湾 HMBcloud 春节88折日本和美国CN2 VPS主机套餐

春节期间我们很多朋友都在忙着吃好喝好,当然有时候也会偶然的上网看看。对于我们站长用户来说,基本上需要等到初八之后才会开工,现在有空就看看是否有商家的促销。这里看到来自HMBcloud半月湾服务商有提供两款春节机房方案的VPS主机88折促销活动,分别是来自洛杉矶CN2 GIA和日本CN2的方案。八八折优惠码:CNY-GIA第一、洛杉矶CN2 GIA美国原生IP地址、72小时退款保障、三网回程CN2 ...

香港云服务器 1核 256M 19.9元/月 Mineserver Ltd

Mineserver(ASN142586|UK CompanyNumber 1351696),已经成立一年半。主营香港日本机房的VPS、物理服务器业务。Telegram群组: @mineserver1 | Discord群组: https://discord.gg/MTB8ww9GEA7折循环优惠:JP30(JPCN2宣布产品可以使用)8折循环优惠:CMI20(仅1024M以上套餐可以使用)9折循...

acceptencoding为你推荐
Telewizjamedia2011年停止接单产品支持ipad支持ipad支持ipadnetbios端口26917 8000 4001 netbios-ns 端口 是干什么的ipad如何上网ipad如何允许app使用网络ipad连不上wifiiPad mini WiFi开关成灰色无法连接,怎么办iexplore.exe应用程序错误iexplore.exe - 应用程序错误怎么办阿??????googleadsense我申请Google AdSense要怎样才能通过Google AdSense呀?
备案域名出售 香港机房 evssl php探针 2017年万圣节 bgp双线 空间购买 丽萨 免费ftp 镇江高防 工信部icp备案查询 阿里云个人邮箱 腾讯服务器 建站技术 防盗链 alexa搜 在线tracert rewrite规则 电脑主机启动不了 戴尔主机 更多