@目录
1. 背景
使用platforIO+VScode有段时间了,因为这个工具组合编译速度比ArduinoIDE快了很多,所有的配置都可以通过platformio.ini文件来配置。一直以来都很好奇为什么这个工具可以只通过几行配置代码就完成库的加载,烧录端口、速率、配置的设置。
2. 原理
我目前的理解是,platformio在首次使用时会把需要的库下载到本地,以后使用时,通过配置文件把需要的库加载到编译路径中。达到的效果就是程序员编程时只需要简单的通过配置platformio.ini文件,IDE通过python把需要的文件都加载到编译路径中。platformio的本地存放路径是:C:\Users\用户名.platformio,文件结构如下图:
- packages:存放framework、tool源代码。这里存放的都是通用库,针对一个framework或者board。
- penv:python environment, python相关环境
- platforms:平台相关信息
- python3:python安装路径
3. 自建工程文件
自建工程中,通过platformio.ini可以把用到的framework、board、platform源文件编译进来,而自建工程中用到的第三方库,则是通过lib_deps指定的。platformioIDE会把库下载下来放到.pio文件下。
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
upload_port = COM10
monitor_speed = 115200
lib_deps =
askuric/Simple FOC@2.2.1
SPI
Wire
lib_archive = false
下图是我的一个工程目录:
使用的第三方库simpleFOC是放在.pio/biddeps/esp32dev/simpleFOC下
4. 问题
使用lgt8f328p时,用avrdude下载程序时无响应,但是同样的程序用ArduinoIDE可以正常下载