2017-07-01 61 views
0

我使用帶有ESP8266模塊的NodeMCU v2 devkit。我在Lua編程,我想用其他引腳通過UART傳輸數據。我知道UART 1引腳只能傳輸,不能接收數據。所以,在我的代碼我試圖使用NodeMCU不能使用uart 1 - Lua

uart.alt(1) 

改變引腳分配,但我得到一個錯誤

attempt to call field 'alt' (a nil value) 

不管我做什麼,錯誤仍然apears,直到我在我的這行代碼。我也試圖與uart.setup使用它與第一個參數1定義UART 1,但隨後出現另一個錯誤:

uart.setup(1, 9600, 8, 0, 1, 1) 

錯誤:

stdin:1 uart 1 does not exist 

我尋求幫助,因爲也許我m做錯了什麼,解決方案很簡單,或者也許在Lua中的uart 1存在問題。我看到很多主題,但建議只與固件相關。我嘗試了很多版本,問題仍然存在。從這裏的文件

細節:http://nodemcu.readthedocs.io/en/master/en/modules/uart/

+0

很多版本都不是很具體。你使用哪種firmeware版本?如果uart.alt爲零,你可以以某種方式指定爲零,或者它不會在你的版本中存在(這更可能) – Piglet

回答

1

uart.altadded to the firmware於11月28日,2015年

所以,用幾乎可以肯定你正在使用從之前的固件。我建議你最近的NodeMCU二進制文件build and flash,其中一個匹配你在文檔中找到的內容。

+0

謝謝你的具體日期。我注意到我正在使用比預期更舊的nodemcu_integer_0.9.6-dev_20150704。我正在使用它,因爲在這個固件上,我能夠做我需要的一切,除了uart的東西。我在自定義構建https://nodemcu-build.com/之前嘗試過,但ESPlorer中的輸出結果類似於?* P6?UH5?Y%。所以基本上是奇怪的字符,我無法用模塊做任何事情。編程不能,我想知道爲什麼我不能使用自定義構建。 Master和Dev分支都存在問題。 – AidanSalvatore

+0

我做了一些測試,我發現模塊可以用最新的固件和uart.alt和uart.setup進行編程,不會再產生錯誤。我仍然沒有使用uart 1實現我想要的功能,但這是另一個話題的問題。現在我可以說,與uart相關的錯誤可以通過您的答案和最新固件來解決。 – AidanSalvatore

+0

NodeMCU默認長時間使用115'200bps,而ESPlorer默認使用9'600bps。這可能是你看到亂碼的原因。有關詳細信息,請參閱https://nodemcu.readthedocs.io/en/latest/en/upload/。 –