標題打開一個Hello world工程并燒錄
點擊環境搭建鏈接
遇到的問題:
1.ESP32在VSCODE中燒錄代碼時,跳出窗口,OPenOCD is not running ,do you want to launch it?
可能是OCD沒安裝,重新安裝 ESP-IDF試一下,在終端命令窗口輸入:
rm -rf ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git ~/esp
重新安裝了一遍也沒用。
懷疑是驅動的問題:
點擊進入 改驅動操作步驟
但是沒找到Jtag的選項。
在設備管理器中找不到jtag,猜測用不了JTAG模式:、
官網flash串口下載鏈接
用串口燒錄三個固件方法鏈接 試驗可行。
如果說第一遍沒下載成功,檢查是不是串口,用chipinfoDump里面的readflash試一下看能不能讀到。然后檢查3個bin文件的地址是否正確,這個可以從vscode的構建編譯輸出信息中看。
再次打開這個軟件發現有了,照著鏈接的步驟再操作一遍:
接USB,通過VSCODE燒錄項目,OCD也不報錯,成功下載
加一根UART線,打印成功:
2.好多錯誤,頭文件include無法識別問題:
按下CTRL+shift+P打開設置搜索,輸入>esp-idf add vsc打開ESP-IDF擴展設置。點擊之后就會發現在項目根目錄下創建一個.vscode文件夾,該命令會將所有的頭文件路徑都包含在該c_cpp_properties.json配置文件中
添加
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","${config:idf.path}/components/**", // 添加 ESP-IDF 組件的頭文件路徑"${config:idf.path}/components/freertos/include", // FreeRTOS 頭文件路徑"${config:idf.path}/components/esp_system/include", // ESP系統相關頭文件路徑"${config:idf.path}/components/esp_flash/include", // ESP閃存相關頭文件路徑"${config:idf.path}/components/esp_chip_info/include" // ESP芯片信息頭文件路徑],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "${config:idf.toolsPathWin}\\tools\\xtensa-esp-elf\\esp-14.2.0_20241119\\xtensa-esp-elf\\bin\\xtensa-esp32s3-elf-gcc.exe","intelliSenseMode": "windows-msvc-x64"}],"version": 4
}
構建一下,錯誤更多
注意: “compilerPath”: "KaTeX parse error: Undefined control sequence: \Users at position 135: …,這個是是編譯器的路徑,從C:\?U?s?e?r?s?\XYZN\.espressi…{config:idf.toolsPathWin}就在C:\Users\XYZN.espressif\tools 同一目錄。
“intelliSenseMode”: “windows-msvc-x64” 這個與編譯器路徑不兼容 改"intelliSenseMode": “gcc-x64”,錯誤消失
至此,我發現VSCODE下載的esp-idf,不用額外在網上去下載。
我發現:安裝路徑和編譯器路徑在.espressif里面。而代碼在esp里面,這兩個路徑不一樣,那在json配置文件中,能找到包含頭文件的正確路徑嗎.
現在不把hello world工程單獨放到D盤,就在vscode中打開esp里面的hello world文件夾。同樣也報錯
但是不報包含的錯,在《按下CTRL+shift+P打開設置搜索,輸入>esp-idf add vsc打開ESP-IDF擴展設置。點擊之后就會發現在項目根目錄下創建一個.vscode文件夾,該命令會將所有的頭文件路徑都包含在該c_cpp_properties.json配置文件中》這個步驟之前是報include的錯的
好,刪掉黃色部分,不報警告了:
自己創建工程
CTRL+shift+P ,輸入>esp-idf:new project打開ESP-IDF擴展設置
右下角進度條執行一會后,這里要選擇,不然沒有的
項目直接構建,注意要完成后下載,不然會缺失文件,看到白燈閃爍,完成。
打印串口:
ESP_LOGI(TAG, “Turning the LED %s!”, s_led_state == true ? “ON” : “OFF”); //自帶的
printf(“OKOK”); //這個也可以用