官方教程: https://nodemcu.readthedocs.io/en/master/
安裝步驟: https://github.com/nodemcu/nodemcu-devkit/wiki/Getting-Started-on-OSX
測(cè)試驅(qū)動(dòng)是否安裝好:
ls /dev | grep tty | head
顯示這個(gè)
···
xxx.SLAB_USBtoUART
···
就代表成功了
https://www.14core.com/installing-nodemcu-driver-on-mac/
在coolterm上點(diǎn)擊connect可以成功連接, 建議用esplorer連接
下載esptool
https://github.com/espressif/esptool
提示"cannot open init.lua"
官方解答 https://nodemcu.readthedocs.io/en/master/en/upload/
簡(jiǎn)書(shū)喜愛(ài)nodemcu朋友的學(xué)習(xí)筆記
http://www.reibang.com/c/822b99541ef5
不升級(jí)導(dǎo)致nodemcu版本過(guò)舊, tmr.create()這樣動(dòng)態(tài)創(chuàng)建計(jì)時(shí)器的功能在早期版本并沒(méi)有
問(wèn)題 https://stackoverflow.com/questions/44037327/tmr-create-fails-in-dirt-simple-code
升級(jí)方式: http://www.reibang.com/p/78b1400aa56e
官方固件下載: https://nodemcu-build.com/
各固件對(duì)比: https://www.douban.com/note/618121135/
一些學(xué)習(xí)資料總結(jié): http://blog.csdn.net/qq_32543253/article/details/53240071
刷固件: https://nodemcu.readthedocs.io/en/master/en/flash/
刷固件工具都不好用, 而且要win系統(tǒng)運(yùn)行, 把nodemcu刷廢了, 于是用官方的esptool.py刷法:
-
nodemcu-build.com選擇模塊過(guò)多是無(wú)法編譯的
模塊太多無(wú)法編譯
image.png
成功編譯提醒, 接下來(lái)等待郵件兩封, 第一封提示開(kāi)始編譯, 第二封提供float和integer兩個(gè)版本固件
image.png - 下載esptool.py
- 修改權(quán)限 chmod 777 ./esptool.py
- 獲取mac上的設(shè)備端口: ls /dev/tty.*
3.1 記住這個(gè)"/dev/tty.SLAB_USBtoUART" 每個(gè)設(shè)備上可能不同, 自己去找, 這個(gè)和軟件打開(kāi)com里面列出來(lái)名字是一樣的
win下獲取端口dos下使用
chgport
/dev/tty.Bluetooth-Incoming-Port /dev/tty.SLAB_USBtoUART
/dev/tty.SBH70-CSRGAIA
- 擦除flash, 官方說(shuō)很多人在升級(jí)時(shí)忽略了芯片初始化, 發(fā)生問(wèn)題后可以擦除flash, 格式為
esptool.py --port <serial-port-of-ESP8266> erase_flash
運(yùn)行效果
./esptool.py --port /dev/tty.SLAB_USBtoUART erase_flash
image.png官方提示升級(jí)錯(cuò)誤導(dǎo)致sdk無(wú)法識(shí)別, 會(huì)導(dǎo)致無(wú)盡重啟, 或者死循環(huán), 或者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
運(yùn)行效果, 有4mb哦 很滿足
esptool.py --port /dev/tty.SLAB_USBtoUART flash_id
image.png
- 升級(jí)固件
esptool.py --port <serial-port-of-ESP8266> write_flash -fm <mode> 0x00000 <nodemcu-firmware>.bin
運(yùn)行效果
esptool.py --port /dev/tty.SLAB_USBtoUART write_flash -fm dio 0x00000 下載的固件.bin
image.png
- 然后軟件還是找不到sdk版本, 之后就又下載了新的fireware刷, 后來(lái)把頻率改為115200能成功連接開(kāi)發(fā)工具了, 看來(lái)頻率不僅僅是影響亂碼, 也影響和芯片連接.
- -fm dio這個(gè)指令不要換成-fm qio, 我剛作死試了幾次, 發(fā)現(xiàn)又無(wú)法成功刷固件, 然后以為是bin包太大導(dǎo)致的, 但是不應(yīng)該, 反復(fù)試無(wú)論大小還是float, int都無(wú)法成功再刷寫(xiě)固件, 后發(fā)現(xiàn)了這個(gè)指令, 本身我是試試的去改這個(gè)參數(shù), 這個(gè)參數(shù)是說(shuō)qio支持512kb以下的刷寫(xiě), dio支持4mb以上的刷鞋, 應(yīng)該是對(duì)應(yīng)硬件存儲(chǔ), 而不是固件大小的, 大家謹(jǐn)記
9.成功和失敗刷寫(xiě)后開(kāi)發(fā)工具鏈接的效果, 可反復(fù)練習(xí), 感覺(jué)這個(gè)芯片只要不用錘子, 理論刷不壞
刷寫(xiě)失敗
image.png
刷寫(xiě)成功
image.png
ps:雖然工具軟件界面人性化, 但是還是通過(guò)py方式刷固件更直觀
ps2: 我把我生成的固件放到百度云里面方便大家下載:
鏈接: https://pan.baidu.com/s/1slnYLyt 密碼: bi75
關(guān)于連接esplorer時(shí)出現(xiàn)的亂碼
http://blog.csdn.net/dustintime/article/details/54914054
這里有解釋, 啟動(dòng)時(shí)如果能調(diào)試成功, 記住這個(gè)波特率, 然后改成74880啟動(dòng), 你會(huì)看到第一行的亂碼變成了很多行的數(shù)據(jù), 而之前你看到的部分變成了亂碼, 他連接的時(shí)候動(dòng)態(tài)調(diào)整波特率, 先用74880輸出內(nèi)部信息, 再通過(guò)9600 (我這里是115200)進(jìn)行調(diào)試, 不管哪個(gè)頻道, 永遠(yuǎn)有一行是亂碼