官方教程: https://nodemcu.readthedocs.io/en/master/
安装步骤: https://github.com/nodemcu/nodemcu-devkit/wiki/Getting-Started-on-OSX
测试驱动是否安装好:
ls /dev | grep tty | head
显示这个
···
xxx.SLAB_USBtoUART
···
就代表成功了
https://www.14core.com/installing-nodemcu-driver-on-mac/
在coolterm上点击connect可以成功连接, 建议用esplorer连接
下载esptool
https://github.com/espressif/esptool
提示"cannot open init.lua"
官方解答 https://nodemcu.readthedocs.io/en/master/en/upload/
简书喜爱nodemcu朋友的学习笔记
http://www.jianshu.com/c/822b99541ef5
不升级导致nodemcu版本过旧, tmr.create()这样动态创建计时器的功能在早期版本并没有
问题 https://stackoverflow.com/questions/44037327/tmr-create-fails-in-dirt-simple-code
升级方式: http://www.jianshu.com/p/78b1400aa56e
官方固件下载: https://nodemcu-build.com/
各固件对比: https://www.douban.com/note/618121135/
一些学习资料总结: http://blog.csdn.net/qq_32543253/article/details/53240071
刷固件: https://nodemcu.readthedocs.io/en/master/en/flash/
刷固件工具都不好用, 而且要win系统运行, 把nodemcu刷废了, 于是用官方的esptool.py刷法:
-
nodemcu-build.com选择模块过多是无法编译的
模块太多无法编译
成功编译提醒, 接下来等待邮件两封, 第一封提示开始编译, 第二封提供float和integer两个版本固件
- 下载esptool.py
- 修改权限 chmod 777 ./esptool.py
- 获取mac上的设备端口: ls /dev/tty.*
3.1 记住这个"/dev/tty.SLAB_USBtoUART" 每个设备上可能不同, 自己去找, 这个和软件打开com里面列出来名字是一样的
win下获取端口dos下使用
chgport
/dev/tty.Bluetooth-Incoming-Port /dev/tty.SLAB_USBtoUART
/dev/tty.SBH70-CSRGAIA
- 擦除flash, 官方说很多人在升级时忽略了芯片初始化, 发生问题后可以擦除flash, 格式为
esptool.py --port <serial-port-of-ESP8266> erase_flash
运行效果
./esptool.py --port /dev/tty.SLAB_USBtoUART erase_flash
官方提示升级错误导致sdk无法识别, 会导致无尽重启, 或者死循环, 或者led疯狂闪烁
Symptoms include messages like rf_cal[0] !=0x05,is 0xFF, or endless reboot loops and/or fast blinking module LEDs.
- 获取芯片的容量
esptool.py --port <serial-port> flash_id
运行效果, 有4mb哦 很满足
esptool.py --port /dev/tty.SLAB_USBtoUART flash_id
- 升级固件
esptool.py --port <serial-port-of-ESP8266> write_flash -fm <mode> 0x00000 <nodemcu-firmware>.bin
运行效果
esptool.py --port /dev/tty.SLAB_USBtoUART write_flash -fm dio 0x00000 下载的固件.bin
- 然后软件还是找不到sdk版本, 之后就又下载了新的fireware刷, 后来把频率改为115200能成功连接开发工具了, 看来频率不仅仅是影响乱码, 也影响和芯片连接.
- -fm dio这个指令不要换成-fm qio, 我刚作死试了几次, 发现又无法成功刷固件, 然后以为是bin包太大导致的, 但是不应该, 反复试无论大小还是float, int都无法成功再刷写固件, 后发现了这个指令, 本身我是试试的去改这个参数, 这个参数是说qio支持512kb以下的刷写, dio支持4mb以上的刷鞋, 应该是对应硬件存储, 而不是固件大小的, 大家谨记
9.成功和失败刷写后开发工具链接的效果, 可反复练习, 感觉这个芯片只要不用锤子, 理论刷不坏
刷写失败
刷写成功
ps:虽然工具软件界面人性化, 但是还是通过py方式刷固件更直观
ps2: 我把我生成的固件放到百度云里面方便大家下载:
链接: https://pan.baidu.com/s/1slnYLyt 密码: bi75
关于连接esplorer时出现的乱码
http://blog.csdn.net/dustintime/article/details/54914054
这里有解释, 启动时如果能调试成功, 记住这个波特率, 然后改成74880启动, 你会看到第一行的乱码变成了很多行的数据, 而之前你看到的部分变成了乱码, 他连接的时候动态调整波特率, 先用74880输出内部信息, 再通过9600 (我这里是115200)进行调试, 不管哪个频道, 永远有一行是乱码