ESP32是低成本,低功耗的單片機微控制器,集成Wi-Fi和雙模藍(lán)牙。
ESP32系列采用Tensilica Xtensa LX6微處理器,包括雙核心和單核變體,內(nèi)置天線開關(guān),RF變換器,功率放大器,低噪聲接收放大器,濾波器和電源管理模塊。
剛?cè)胧忠粋€塊ESP32-WROVER-E想學(xué)習(xí)一下C語言,沒有想到第一步上來就給一個莫名奇妙的問題。
當(dāng)我使用esptool.py工具清除ESP32固件時,終端給了一個錯誤提示A fatal error occurred: Could not open /dev/ttyUSB0, the port doesn't exist。
翻譯過來就是一個致命的錯誤,不能打開/dev/ttyUSB0,該端口不存在。我查找端口的方式都是按照官方查找端口的方式進(jìn)行的。下面我們說一下怎么解決這個問題。
esptool.py --chip esp32 -b 115200 --port /dev/ttyUSB0 erase_flash
Linux/Mac 查找串口設(shè)備名稱
要解決端口不存在的問題,你必須先保證能找到正確的串口設(shè)備名稱。在Linux,USB串口的設(shè)備名稱通常都以ttyUSB作為前綴,然后USB串口的數(shù)字。
在官方文檔給出一個簡單解決方式就是,首先運行一次ls命令ls /dev/tty*
列出所有TTY設(shè)備。
然后使用USB線連接你的ESP32設(shè)備,再次運行命令ls /dev/tty*
列出所有TTY設(shè)備。增加的TTY設(shè)備就是ESP32開發(fā)板串口的設(shè)備名稱。
這是可以在不安裝任何軟件找到ESP32開發(fā)板串口的設(shè)備名稱方式,當(dāng)然你可以使用Arduino IDE的工具找到ESP32開發(fā)板串口的設(shè)備名稱。
通常我們比較建議使用官方文檔找到ESP32開發(fā)板串口的設(shè)備名稱,但需要改進(jìn)一點就是列出TTY設(shè)備文件時,直接指定USB的TTY設(shè)備。
命令ls /dev/tty*
包含太多的文件,很難找到。而命令ls /dev/ttyUSB?
則會很容易就能發(fā)現(xiàn)。
ls /dev/ttyUSB?
解決端口不存在
找到ESP32正確的串口設(shè)備名稱非常重要,如果你沒有找到正確串口設(shè)備名稱,你將永遠(yuǎn)得到是 Could not open /dev/ttyUSB0, the port doesn't exist。
如果你確定找到的是正確的串口設(shè)備名稱,還是遇到錯誤消息A fatal error occurred: Could not open /dev/ttyUSB0, the port doesn't exist。
這是因為當(dāng)前登錄的用戶對串口設(shè)備文件不可讀寫,也就權(quán)限不足,就會出現(xiàn)同樣的錯誤。其實,這里的錯誤應(yīng)該說權(quán)限拒絕才對。
要解決次問題有兩種方式。第一種直接使用chmod命令修改串口設(shè)備文件的權(quán)限,讓所有用戶都可以讀寫串口設(shè)備文件。
第二種是使用usermod命令將當(dāng)前用戶加入dialout組,dialout組對串口設(shè)備文件具有讀寫權(quán)限。
這里之所以建議使用第二種方案是因為chmod命令修改權(quán)限只是一次性的,當(dāng)你將ESP32斷開連接,串口設(shè)備文件就會恢復(fù)原來的權(quán)限。
命令sudo usermod -aG dialout $USER
將當(dāng)前登錄的用戶加入dialout組。newgrp dialout
命令使用戶組的修改在當(dāng)前shell會話生效。
sudo usermod -aG dialout $USER
newgrp dialout
-
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213748 -
Mac
+關(guān)注
關(guān)注
0文章
1117瀏覽量
53088 -
串口
+關(guān)注
關(guān)注
15文章
1588瀏覽量
79917 -
ESP32
+關(guān)注
關(guān)注
21文章
1017瀏覽量
19250
發(fā)布評論請先 登錄
固件修改了mac地址和廣告名稱
如何檢索設(shè)備MAC地址?
ARM linux該怎樣去查找串口對應(yīng)內(nèi)核的串口號呢
Linux下串口編程下載
Linux下讀取網(wǎng)卡默認(rèn)MAC地址的方法
安裝xp win7 mac linux多系統(tǒng)

【嵌入式Linux(環(huán)境篇)】Linux下的串口助手 —— minicom或putty

如何為IO設(shè)備分配一個名稱
如何使用命令行在Linux中查找文件?
linux查找ip地址的三種方法

評論