最近想做个大点的项目,想同时用到arduino和esp-idf的特性,但是环境设置还有点复杂
首先是现在platformio里面的esp-idf和arduino不兼容,是因为esp32 的arduino是基于esp-idf 4.4 的而,platformio里面的esp-idf只支持到4.3所以不行。然后我尝试用idf的工具链新建一个工程,等pio支持了我再配置platformio来支持。
vscode安装乐鑫的插件
2022年4月2日 UPDATE:
我发现原来插件有自动化这个过程的指令的,不过默认是安装在工程的component下面的,所以会导致每个工程都有一个几百m的arduino component。。。
https://docs.espressif.com/projects/arduino-esp32/en/latest/esp-idf_component.html
先在vscode里面安装espressif这个插件,然后用他的会安装好相应的工具链。最后上面那篇文章写的一样把arduino克隆下来。不过我这里编译的时候会报一个 #include "esp_wpa2.h" 的错
可以看这里是因为cmake里面没有包含这个库wpa_supplicant。改成这样就可以了
idf_component_register(INCLUDE_DIRS ${includedirs} PRIV_INCLUDE_DIRS ${priv_includes} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires} wpa_supplicant)
image.png
另外就是这里写的,如果vscode的插件各种报错的话可以开一个终端在里面直接跑idf.py的命令,排除是哪里的问题https://stackoverflow.com/questions/67816865/unable-to-compile-esp-idf-example-project
idf.py menuconfig
idf.py build
idf.py -p COMx flash
然后就可以了
用idf.py的好处一个是可以用menuconfig图形化配置界面,一个是可以用monitor看彩色的log日志,然后可以用乐鑫自己出的各种touch啊now啊什么的框架。
网友评论