使用Clion进行ESP32开发

由于不习惯VSCode的半成品C++ IDE功能,我转投了Clion的怀抱。但是Clion又面临插件不如VSCode丰富的问题,所以在开发ESP32时碰到了问题。最后强调一下,如果你主力开发使用VSCode,直接使用ESP32官方提供的插件就行,简单方便,无需命令行。

步骤

其实不需要管什么环境变量,什么交叉编译工具链,我试过,没啥卵用徒增麻烦。

直接打开ESP32项目,默认工具链即可,只要提供了CMake。使用idf.py build编译一次,然后在Clion中重新加载CMake项目即可,而且Clion貌似会主动识别编译产物,并自动配置。

然后你就可以使用智能提示愉快的编辑代码了。

有时候碰到代码识别异常的问题,重复上述步骤即可。

Windows系统更简单,安装完ESP-IDF会在桌面放俩命令行快捷方式ESP-IDF <版本号> CMDESP-IDF <版本号> PowerShell,任选其一,键入clion即可,打开的Clion自动使用ESP-IDF的变量。

问题

缺点就是毕竟没有官方支持,经测试只有buildflash命令成功执行,其他的monitor等要么无效,要么异常。

最好还是命令行手打,使用Clion提供的代码编辑辅助功能进行开发。嫌麻烦也可以手动添加运行/调试配置,就是这玩意无法作为模板跨项目,每个项目都要重新配置。

嫌麻烦还可以给命令加个别名:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
alias get-idf=". $HOME/esp/esp-idf/export.sh"
alias idf-set-target="idf.py set-target"
alias idf-menuconfig="idf.py menuconfig"
alias idf-build="idf.py build"
alias idf-flash="idf.py flash"
alias idf-monitor="idf.py monitor"
alias idf-reconfigure="idf.py reconfigure"

alias idf-clean="idf.py clean"
alias idf-fullclean="idf.py fullclean"
alias idf-erase-flash="idf.py erase-flash"

此外,在Linux系统还有可能遇到串口没权限的问题,解决方法如下:

查看串口ttyUSB0权限

1
ls -l /dev/ttyUSB0

可以看到所属用户组为dialoutroot用户才具有操作权限。

查看当前用户

1
whoami

然后将当前用户加入到dialout用户组,使其具有操作串口ttyUSB0的权限

1
sudo usermod -aG dialout jove

完成,重启系统即可。

引用