首先,我不会详细介绍,因为有很多,我不想写(太长)的文章。最后有TL; DR部分,因为我有一个特定的问题,但也许一些额外的信息可以帮助。
我有一个由GRU(玻璃室单元)和espressif(esp8266)制成的设备。
GRU和esp8266通过串口通信,GRU作为主站。 GRU使用内部工具进行编程,我可以监控其上的所有内容,包括从esp8266获取的信息。 有一个测试/开发设备,在GRU顶部有espressif,因此我可以轻松地将其取下,重新编程/重新配置,并将其打开。
Espressif在GRU内部,将内容下载到flash是一个真正的痛苦。整个过程包括一个OS开关(从Win7到Linux再返回)。 espressif上的控制台输出无法完成,或者至少不在我的时间范围内。
对于esp8266,我使用非操作系统SDK V2.0.0_16_08_10。
Espressif可配置为将配置下载到闪存,或通过UDP(如果已连接则通过网络,如果未连接则通过其网络连接)。
Wifi算法:
1. Try to connect to a network from configuration
2. If it succeeds, raise a flag for that
3. If it fails, enter dual (STATION+AP) mode and raise a flag for that
espressif并不总是处于双模式的原因是它会影响多播操作。
网络配置是由我写的Java应用程序完成的。
情景1
我已经配置了一个wifi路由器,配置了所有(x19)设备(在设备中的espressif)连接到其网络。当我打开它们时,它们将逐一连接。未进入双模式且可通过应用程序配置的那些。
一切顺利。
情景2 我想在现实世界中测试系统,所以我重新配置它们以连接到我们的公司网络。此外,当我已经通过整个过程时,我已经下载了最新的闪光灯。
我预计他们会连接或进入双模式并创建自己的AP。但他们没有。
我测试了espressif上的代码和配置,我可以监视控制台输出,一切正常。
我测试了测试设备上的代码和配置,然后再次运行。
然后我将代码和配置重新下载到一个设备上,但它没有用。
TL; DR 我有两个设备,GRU上的espressif和GRU内部的espressif。两者都连接到一个网络。 GRU上的Esp为另一个GRU工作,GRU内部的Esp不适用于其他网络。 它们具有相同的代码和配置,因此它不应该是软件问题。
在设备内部使用espressif是否足以使其信号无法通过?设备不大(5x5x2cm)。
更新1: 在我写作的时候,GRU里面的espressif设法连接到网络。然后我重新启动它,以便我可以检查它是否可以再次执行,并且它无法再次连接。 我花了大约10分钟写完整个问题。
答案 0 :(得分:0)
有两件事似乎导致了这个问题。
当我删除gpio_init()时,网络内容变得更快,速度更快。一切都在它上面,连接到AP,创建AP等...
我已经更改了配置和wifi代码,因此它现在通过API将ap和station配置存储到flash。
我只检查其内部配置是否与我的内部配置相同。如果不是,它会保存它。现在,我只控制当前的opmode。