最近入手了两片合宙出品的ESP32C3开发板。到手后以为可以向ESP8266那样很容易实现Arduino下的开发和下载,结果上传失败。于是到他家的官网翻阅相关资料。发现他家的这个开发板默认提供的是Luat下的开发。自己对Luat开发不懂,但为了测试板子是否正常,只好硬着头皮用Luat测试。
测试之前,要安装这个开发板的串口驱动程序。它使用的是CH343芯片作为USB转串口的驱动,可以到https://www.wch.cn/downloads/CH343SER_EXE.html这个网站下载驱动。安装过程不多说了。然后按照网页https://wiki.luatos.com/chips/esp32c3/board.html中提供的文档,下载了Luatools_v2.exe。把开发板接入电脑,启动这个程序后,有可能提示这个软件有病毒,我选择无视。进入程序窗口,会提示软件升级,升级后再启动,窗口如下:
之后就是按照官方网页中教程的提示操作,下载固件,执行“项目管理测试”,建立新工程,打开示例文件。
固件以及示例文件都可以在合宙官方提供的网页中下载。固件文件的扩展名是soc。
我选择的示例文件是gpio下的main.lua,然后执行“下载脚本”,正常情况下,程序会被写入开发板。
到这一步证明开发板没问题,可用。我看看Luat的源代码,因为没学过,也只能拿看个大概。个人还是倾向于在Arduino下开发。
实现Arduino开发的过程中走过一些弯路,不多说,只想和大家分享成功的做法哈。为了能实现在Arduino下开发、上传程序,需要重新安装ESP32的开发包,因为默认的开发包中没有ESP32C3的开发版选项。下面的操作,默认是已经在安装好ArduinoIDE的场合下的操作。你可以选择最新版的2.0.3,这个相比以往1.x的版本,操作上更方便一些。
1、先删除之前默认的ESP32开发包,这个开发包一般在C:\Users\HP\AppData\Local\Arduino15\packages目录下,删除esp32这个文件夹。
然后下载新的esp32开发包:https://arduino.me/a/esp32,执行上传下来的安装文件esp32_package_2.0.5_arduinocn.exe,在C:\Users\HP\AppData\Local\Arduino15\packages目录下会重新建立一个esp32文件夹。
2、打开ArduinoIDE,设置开发板的管理器网址,在首选项窗口中的加入以下内容 "https://arduino.me/packages/esp32.json"
3、选择端口和开发板
端口要选择开发板所在的端口。我选设置开发板再选择端口的时候,会出现找不到端口的情况。所以最好先选择端口,再选开发板。开发板一定要选择ESP32C3的那个
4、设置上传参数
一定要修改Flash Mode参数为“DIO”,否则上传程序会失败。
5、打开示例文件Blink
可以根据你的需要进行简单修改,我改成以下交替闪烁的模式了。
constint ledPin1 = 12; // the number of the LED pin
constint ledPin2 = 13; // the number of the LED pin
// the setup function runs once when you press reset or power the board
voidsetup(){
// initialize digital pin LED_BUILTIN as an output.
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
// the loop function runs over and over again forever
voidloop(){
digitalWrite(ledPin1, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(ledPin2, LOW); // turn the LED on (HIGH is the voltage level)
delay(300); // wait for a second
digitalWrite(ledPin1, LOW); // turn the LED off by making the voltage LOW
digitalWrite(ledPin2, HIGH); // turn the LED off by making the voltage LOW
delay(300); // wait for a second
}
之后编译上传,就可以看到结果了。
总体来说,这个开发板不像ESP8266那么容易操作,但并非不能解决。实际上这个板子的上传速度非常快,超出了我的预期。程序上传速度可以设置为921600,几乎不用等待就可完成上传。
其他注意事项:ESP32C3的以下引脚具有特殊功能,通常不建议使用,如果您对这些功能不了解,请不要操作这些引脚:
• IO3/HOLD# = GPIO12/SPIHD
• IO2/WP# = GPIO13/SPIWP
• CS# = GPIO14/SPICS0
• CLK = GPIO15/SPICLK
• IO0/DI = GPIO16/SPID
• IO1/DO = GPIO17/SPIQ
编号 | 名称 | 复位后默认功能 | 复用功能 | 电源域 | 上下拉能力 |
32 | GND | 接地 | |||
31 | 5V | 5V电源接口,与USB的VBUS相连 | |||
30 | BOOT | GPIO09,输入 | BOOTMODE | VDD3P3_CPU | UP/DOWN |
29 | IO08 | GPIO08,输入,输出,高阻 | VDD3P3_CPU | UP/DOWN | |
28 | IO04 | GPIO04,输入,输出,高阻 | I2C_SDA/ADC_4 | VDD3P3_RTC | UP/DOWN |
27 | IO05 | GPIO05,输入,输出,高阻 | I2C_SCL/ADC_5 | VDD3P3_RTC | UP/DOWN |
26 | 3.3V | 芯片电源,3.3V | |||
25 | GND | 接地 | |||
24 | PB_11 | GPIO11,输入,输出,高阻 | VDD_SPI | VDD3P3_CPU | UP/DOWN |
23 | IO07 | GPIO07,输入,输出,高阻 | SPI2_CS | VDD3P3_CPU | UP/DOWN |
22 | IO06 | GPIO06,输入,输出,高阻 | VDD3P3_CPU | UP/DOWN | |
21 | IO10 | GPIO10,输入,输出,高阻 | SPI2_MISO | VDD3P3_CPU | UP/DOWN |
20 | IO03 | GPIO03,输入,输出,高阻 | SPI2_MOSI/ADC_3 | VDD3P3_RTC | UP/DOWN |
19 | IO02 | GPIO02,输入,输出,高阻 | SPI2_CK/ADC_2 | VDD3P3_CPU | UP/DOWN |
18 | 3.3V | 芯片电源,3.3V | |||
17 | GND | 接地 | |||
16 | 5V | 5V电源接口,与USB的VBUS相连 | |||
15 | PWB | 芯片3.3V供电控制,高电平有效,不用可悬空 | |||
14 | GND | 接地 | |||
13 | 3.3V | 芯片电源,3.3V | |||
12 | RESET | 芯片复位 | VDD3P3_RTC | ||
11 | NC | ||||
10 | IO13 | GPIO13,输入,输出,高阻 | VDD3P3_CPU | UP/DOWN | |
09 | U0_RX | GPIO20,输入,输出,高阻 | UART0_RX | VDD3P3_CPU | UP/DOWN |
08 | U0_TX | GPIO21,输入,输出,高阻 | UART0_TX | VDD3P3_CPU | UP/DOWN |
07 | GND | 接地 | |||
06 | IO19 | GPIO19,输入,输出,高阻 | USB_D+ | VDD3P3_CPU | UP/DOWN |
05 | IO18 | GPIO18,输入,输出,高阻 | USB_D- | VDD3P3_CPU | UP/DOWN |
04 | IO12 | GPIO12,输入,输出,高阻 | SPIHD | VDD3P3_CPU | UP/DOWN |
03 | IO01 | GPIO1,输入,输出,高阻 | UART1_RX/ADC_1 | VDD3P3_CPU | UP/DOWN |
02 | IO00 | GPIO0,输入,输出,高阻 | UART1_TX/ADC_0 | VDD3P3_CPU | UP/DOWN |
01 | GND | 接地 |
合宙CORE ESP32核心板板载2颗LED,开发者可参考下表进行对应管脚的控制。
LED编号 | 对应GPIO | 管脚功能 | 描述 |
D4 | IO12 | GPIO12配置 | 高电平有效 |
D5 | IO13 | GPIO13配置 | 高电平有效 |
合宙CORE ESP32核心板板载两颗按键,其中BOOT键可实现BOOT下载功能,RST键可实现复位功能。
按键编号 | 管脚功能 | 描述 |
BOOT/GPIO9 | 按键按下时,芯片进入下载模式 | 低电平有效 |
RST | 按键按下时,芯片复位 | 低电平有效 |
外置SPI FLASH控制
flash管脚标号 | 对应GPIO | 管脚功能 | 上下拉能力 |
SPICS0 | - | GPIO14配置,FLASH_CS,片选 | UP/DOWN |
SPIQ | - | GPIO17配置,FLASH_D1,数据脚1 | UP/DOWN |
SPID | - | GPIO16配置,FLASH_D0,数据脚0 | UP/DOWN |
SPICLK | - | GPIO15配置,FLASH_CK,时钟 | UP/DOWN |
注:CORE ESP32核心板搭载ESP32-C3是不带内置FLASH版本,默认贴装外置SPI FLASH,如遇到不贴装外置SPI FLASH的核心,需要注意主芯片的具体型号。
任意GPIO均可作为PWM脚, 编号与GPIO一致, 但同时只能开启4路PWM,务必注意
---------------------
作者:suncat0504
链接:https://bbs.21ic.com/icview-3271856-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。