[求助] 为什么ESP8266的Micropython 会有两个MAC?

p0we7   2016-12-11 20:52 楼主
这两个MAC , 有一个在刷固件时不出现, 而且出现这个MAC的概率很大. 而在刷固件的工具上面识别出来的MAC却复位很多次才有概率出现 ,而且出现概率不大呢? 还有ESP8266 有没有类似 STM32F4 的哪个 Failmode 模式 , 就是说不运行 filesystem 里面的所有代码. 本帖最后由 p0we7 于 2016-12-11 20:53 编辑

回复评论 (8)

两个MAC的问题没有遇到过,不过也是没有注意检查每个模块。

ESP8266没有这个安全模式,因为没有USB磁盘,所以也不会因为没有安全退出造成文件系统损坏。如果真出问题了,基本只能通过重刷固件恢复。
点赞  2016-12-11 21:54
引用: dcexpert 发表于 2016-12-11 21:54
两个MAC的问题没有遇到过,不过也是没有注意检查每个模块。

ESP8266没有这个安全模式,因为没有USB磁盘 ...

想问问 Micropython-xxxx 这个 AP 怎么关闭掉的?

之前不知道弄了什么就关闭了,现在重刷之后又出来了.

试过用 import webrepl_setup , enable 再 disable 也是不行.

这个出现两个MAC的问题我也很无解啊 .
点赞  2016-12-11 22:04
引用: dcexpert 发表于 2016-12-11 21:54 两个MAC的问题没有遇到过,不过也是没有注意检查每个模块。 ESP8266没有这个安全模式,因为没有USB磁盘 ...
刚刚把代码又传到8266 里面 , 继续重现这个问题. UPDATE: 貌似发现问题了 , 我重刷固件之后, 用serial 连接上wifi后, 把下面代码上传上去 , 然后我同时又使用了GPIO15 . 把这个端口 不知道是拉低还是拉高了 ,就会出现这个问题了 . 我GPIO15脚是接LED的负极 , 另一边是接模块供电的VCC
  1. import network
  2. import time
  3. import socket
  4. import machine
  5. from time import sleep
  6. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  7. s.bind(('', 9000))
  8. s.setblocking(False)
  9. ADDRESS = '192.168.233.11'
  10. GATEWAY = '192.168.233.233'
  11. GPIO = 15
  12. def do_connect():
  13. wlan = network.WLAN(network.STA_IF)
  14. wlan.active(True)
  15. if wlan.ifconfig()[0] == ADDRESS:
  16. return wlan.isconnected()
  17. elif not wlan.isconnected():
  18. wlan.ifconfig((ADDRESS, '255.255.255.0', GATEWAY, '114.114.114.114'))
  19. wlan.connect('SSID', 'PASSWORD')
  20. while not wlan.isconnected():
  21. pass
  22. return wlan.isconnected()
  23. def set_pin_hight(pin):
  24. pin.value(1)
  25. sleep(0.3)
  26. pin.value(0)
  27. def set_pin_low(pin):
  28. pin.value(0)
  29. def reset():
  30. machine.reset()
  31. def main():
  32. if do_connect():
  33. pin = machine.Pin(GPIO, machine.Pin.OUT) # GPIO15 default hight level
  34. while True:
  35. try:
  36. msg, address = s.recvfrom(1024)
  37. except OSError as err:
  38. if 'ETIMEDOUT' in str(err):
  39. sleep(1)
  40. continue
  41. else:
  42. print("something else error")
  43. else:
  44. print(msg)
  45. set_pin_hight(pin)
  46. set_pin_low(pin)
  47. main()
本帖最后由 p0we7 于 2016-12-11 22:40 编辑
点赞  2016-12-11 22:35
引用: p0we7 发表于 2016-12-11 22:04
想问问 Micropython-xxxx 这个 AP 怎么关闭掉的?

之前不知道弄了什么就关闭了,现在重刷之后又出来了. ...

关闭网络:

import network

wlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(False)
点赞  2016-12-11 23:07
引用: p0we7 发表于 2016-12-11 22:35
刚刚把代码又传到8266 里面 , 继续重现这个问题.
UPDATE: 貌似发现问题了 , 我重刷固件之后, 用serial  ...

数据手册上,上电时,GPIO15要求是低电平。
点赞  2016-12-11 23:09


第二行参数应该改为对应的AP参数,因为楼主想把ap给关了
点赞  2016-12-12 17:06
引用: johnrey 发表于 2016-12-12 17:06
第二行参数应该改为对应的AP参数,因为楼主想把ap给关了

是的, 我已经关闭了 .

不知道为什么固件默认打开了AP, 可能是方便没有串口进行调试把.
点赞  2016-12-13 00:28
引用: p0we7 发表于 2016-12-13 00:28
是的, 我已经关闭了 .

不知道为什么固件默认打开了AP, 可能是方便没有串口进行调试把.

应该是这样的,现在卖的那些带wifi连接的产品,上来都是开ap,连上以后,再由用户去设置
点赞  2016-12-13 11:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复