ESP32-C5系列连载01- 编程环境arduino-cli搭建测试基于树莓派5

2025-09-262818
AI 快速预览详细 收起
本文介绍了如何在树莓派5上通过全命令行操作搭建ESP32-C5的Arduino CLI编程环境。文章详细描述了从安装依赖到配置开发板的全过程,并提供了故障排查的具体方法。适合零基础新手和熟悉Linux系统的开发者,帮助他们快速上手并解决常见问题。


一、项目背景


这次参加了一次ESP32-C5 ECO1 的版本的开发板试用的活动,由于时间过久,我都忘记我当初填写的项目是想做什么了。在我去郑州参加国赛的时候,快递就到家了,你们能想象那种期待的急切心情吗?哈哈,在微信群里面看着各位大佬快速的搭建环境,做应用,心里也痒痒的,今天终于有时间来搞搞这个项目了, 我对树莓派比较熟悉,或者说linux下更熟悉一些。所以我的操作目前是在树莓派的系统下,全命令行操作。如果大家有闲置的树莓派,也可以跟着我操作哈哈。



FriSeptember-202509262672..png (1.35 MB, 下载次数: 828)

ESP32-C5-Kit

ESP32-C5编程环境搭建:基于树莓派5的Arduino CLI测试_image_3.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
豆爸
豆爸
向大佬学习!!!
yoyojacky
yoyojacky
作者
回复豆爸
哈哈,太客气了,我强烈推荐这个是因为它编译和烧录还挺快的。
yoyojacky
yoyojacky
作者
j记得往下看。。。
yoyojacky
yoyojacky
作者
操作接着上一步:
6. 更新arudino-cli索引文件:
arduino-cli core update-index
7. 安装esp32板级文件:
arduino-cli core install esp32:esp32@3.3.0-alpha1-cn
安装完效果如下:
pi@rpi16g:~ $ arduino-cli core install esp32:esp32@3.3.0-alpha1-cn
可以检查一下:
pi@rpi16g:~/blink $ arduino-cli core list
ID Installed Latest Name
esp32:esp32 3.3.0-alpha1-cn 3.3.0 esp32
[align=left][font=微软雅黑, sans-serif]这时候通过USB线缆将ESP32-C5 模组接入树莓派的USB口,然后执行:[/font][font=微软雅黑, sans-serif]
[/font][/align][align=left]pi@rpi16g:~ $ lsusb[/align][align=left][font=微软雅黑, sans-serif]可以看到类似:[/font][/align][align=left]Bus 003 Device 002:ID 303a:1001 Espressif USB JTAG/serial debug unit[/align][font=微软雅黑, sans-serif]说明串口识别正常。[/font][font=微软雅黑, sans-serif]
[align=left]8. 检查板级的信息:[/align][align=left]
[/align]
[/font]pi@rpi16g:~/blink $
pi@rpi16g:~/blink $ arduino-cli board list
Port Protocol Type Board Name FQBN Core
/dev/ttyACM0 serial Serial Port (USB) ESP32 Family Device esp32:esp32:esp32_family esp32:esp32
/dev/ttyAMA10 serial Serial Port Unknown
[font=微软雅黑, sans-serif]这里看到的/dev/ttyACM0 就是串口上的ESP32-C5,先创建一个blink试试看能否编译和上传。[/font][font=微软雅黑, sans-serif]
[align=left]9. 创建一个sketch:[/align][align=left]pi@rpi16g:~ $arduino-cli sketch new blink[/align][align=left]然后进入目录进行编辑,和试用arduino一样一样的。。
[/align][align=left]pi@rpi16g:~/blink[/align][align=left]
[/align][align=left]内部代码非常简单:[/align]
[align=left]pi@rpi16g:~/blink $vim blink.ino[/align]
[/font]
[font=微软雅黑, sans-serif]
[/font]
[font=微软雅黑, sans-serif]代码内容:[/font]
[font=微软雅黑, sans-serif]pi@rpi16g:~/blink $ cat blink.ino[/font]
[font=微软雅黑, sans-serif]#define LED 15[/font]
[font=微软雅黑, sans-serif]
[/font]
[font=微软雅黑, sans-serif]void setup() {[/font]
[font=微软雅黑, sans-serif] Serial.begin(9600);[/font]
[font=微软雅黑, sans-serif] pinMode(LED, OUTPUT);[/font]
[font=微软雅黑, sans-serif] digitalWrite(LED, LOW);[/font]
[font=微软雅黑, sans-serif] Serial.println("Init LED OK...");[/font]
[font=微软雅黑, sans-serif]}[/font]
[font=微软雅黑, sans-serif]
[/font]
[font=微软雅黑, sans-serif]void loop() {[/font]
[font=微软雅黑, sans-serif] Serial.println("LED ON");[/font]
[font=微软雅黑, sans-serif] digitalWrite(LED, HIGH);[/font]
[font=微软雅黑, sans-serif] delay(50);[/font]
[font=微软雅黑, sans-serif] Serial.println("LED OFF");[/font]
[font=微软雅黑, sans-serif] digitalWrite(LED, LOW);[/font]
[font=微软雅黑, sans-serif] delay(50);[/font]
[font=微软雅黑, sans-serif]}[/font]
[align=left]
[/align][align=left]10. 编译和上传:
[/align][align=left]pi@rpi16g:~/blink $arduino-cli compile -b esp32:esp32:esp32c5 -p /dev/ttyACM0 --upload[/align][align=left]
[/align][align=left]然后等待几秒就会看到:[/align][align=left]
[/align][align=left][font=微软雅黑, sans-serif]Sketch uses 264255 bytes (20%) of program storage space. Maximum is 1310720 bytes.[/font][/align][align=left][font=微软雅黑, sans-serif]Global variables use 15504 bytes (4%) of dynamic memory, leaving 312176 bytes for local variables. Maximum is 327680 bytes.[/font][/align][align=left][font=微软雅黑, sans-serif]esptool.py v4.8.1[/font][/align][align=left][font=微软雅黑, sans-serif]Serial port /dev/ttyACM0[/font][/align][align=left][font=微软雅黑, sans-serif]Connecting...[/font][/align][align=left][font=微软雅黑, sans-serif]Chip is ESP32-C5 (revision v0.1)[/font][/align][align=left][font=微软雅黑, sans-serif]Features: WiFi 6, BT 5, IEEE802.15.4[/font][/align][align=left][font=微软雅黑, sans-serif]Crystal is 48MHz[/font][/align][align=left][font=微软雅黑, sans-serif]MAC: 60:55:f9:ff:fe:fc:8c:54[/font][/align][align=left][font=微软雅黑, sans-serif]BASE MAC: 60:55:f9:fc:8c:54[/font][/align][align=left][font=微软雅黑, sans-serif]MAC_EXT: ff:fe[/font][/align][align=left][font=微软雅黑, sans-serif]Uploading stub...[/font][/align][align=left][font=微软雅黑, sans-serif]Running stub...[/font][/align][align=left][font=微软雅黑, sans-serif]Stub running...[/font][/align][align=left][font=微软雅黑, sans-serif]Changing baud rate to 921600[/font][/align][align=left][font=微软雅黑, sans-serif]Changed.[/font][/align][align=left][font=微软雅黑, sans-serif]Configuring flash size...[/font][/align][align=left][font=微软雅黑, sans-serif]Flash will be erased from 0x00002000 to 0x00007fff...[/font][/align][align=left][font=微软雅黑, sans-serif]Flash will be erased from 0x00008000 to 0x00008fff...[/font][/align][align=left][font=微软雅黑, sans-serif]Flash will be erased from 0x0000e000 to 0x0000ffff...[/font][/align][align=left][font=微软雅黑, sans-serif]Flash will be erased from 0x00010000 to 0x00050fff...[/font][/align][align=left][font=微软雅黑, sans-serif]Compressed 20624 bytes to 12994...[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00002000... (100 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Wrote 20624 bytes (12994 compressed) at 0x00002000 in 0.2 seconds (effective 943.1 kbit/s)...[/font][/align][align=left][font=微软雅黑, sans-serif]Hash of data verified.[/font][/align][align=left][font=微软雅黑, sans-serif]Compressed 3072 bytes to 146...[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00008000... (100 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1027.4 kbit/s)...[/font][/align][align=left][font=微软雅黑, sans-serif]Hash of data verified.[/font][/align][align=left][font=微软雅黑, sans-serif]Compressed 8192 bytes to 47...[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x0000e000... (100 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 1338.2 kbit/s)...[/font][/align][align=left][font=微软雅黑, sans-serif]Hash of data verified.[/font][/align][align=left][font=微软雅黑, sans-serif]Compressed 264368 bytes to 147273...[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00010000... (11 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x0001c414... (22 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00023cbb... (33 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x0002a1af... (44 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00030e84... (55 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00037372... (66 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x0003d4ac... (77 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00043b08... (88 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Writing at 0x00049daf... (100 %)[/font][/align][align=left][font=微软雅黑, sans-serif]Wrote 264368 bytes (147273 compressed) at 0x00010000 in 1.0 seconds (effective 2021.8 kbit/s)...[/font][/align][align=left][font=微软雅黑, sans-serif]Hash of data verified.[/font][/align][align=left][font=微软雅黑, sans-serif]
[/font][/align][align=left][font=微软雅黑, sans-serif]Leaving...[/font][/align][align=left][font=微软雅黑, sans-serif]Hard resetting via RTS pin...[/font][/align]
[font=微软雅黑, sans-serif]这时候看到LED灯会非常快速的闪烁。至此,基本环境搭建完成。
下一个帖子就开始上应用了哈!
[/font]
[align=left]
[/align]
yoyojacky
yoyojacky
作者
二、部署配置步骤
1. 烧录最新的树莓派OS到TF卡,然后初始化系统
2. 联网,更新软件仓库,开启ssh 等, Ctrl+alt+t 打开一个终端,输入:
sudo apt update
sudo apt upgrade -y
sudo apt -y install vim-common vim vim-command-t vim-youcompleteme
3. 下载并安装arduino-cli:
wget https://github.com/arduino/arduino-cli/releases/download/v1.3.1/arduino-cli_1.3.1_Linux_arm64.tar.gz
tar -xf arduino-cli_1.3.1_Linux_arm64.tar.gz
sudo cp arduino-cli /usr/bin/
4. 初始化arduino-cli的配置文件:
arduino-cli config init
5. 配置配置文件来获取板级文件的安装源:
vim /home/pi/.arduino15/arduino-cli.yaml
添加如下内容:
board_manager:
additional_urls: ['https://github.com/espressif/arduino-esp32/releases/download/3.3.0-alpha1/package_esp32_dev_index_cn.json']
network:
connection_timeout: 1800s
这里的network部分就是为了防止网络导致的下载超时,亲测有效。另外additional_urls里面必须试用这个链接,因为测试的这款ESP32-C5 是ECO1的版本,后期ESP32官方在正式版本中已经更迭为ECO2, 无法试用这套开发环境了。具体请看大佬的帖子: 【https://mc.dfrobot.com.cn/thread-398140-1-1.html
- 没有更多了 -