发布时间:2022-12-10 15:30
ESP8266常见烧录速度:115200
256000
921600
3000000
[env:esp12e]
platform = espressif8266 ;平台
board = esp12e ;开发板类型
framework = arduino ;编译方式
upload_port = COM17 ;下载程序端口号
upload_speed = 115200 ;下载波特率
monitor_port = COM17 ;串口控制台端口号
monitor_speed = 115200 ;串口控制台波特率
使用框架:Arduino
资料链接:http://luatos.com/t/esp32c3
ESP32-C3是乐鑫推出的一款处理器,主要是替换下市场上老旧的ESP8266, MCU采用 RSIC-V架构, 主频160MHZ,提供内置Flash和外挂Flash 两个版本。 这个开发版所使用的是必须外挂Flash的型号。
方法一:
板子选择:esp32-c3-devkitm-1
在PlatformIo.ini中修改flash_mode
[env:esp32-c3-devkitm-1]
platform = espressif32
board_build.flash_mode = dio
board = esp32-c3-devkitm-1
framework = arduino
monitor_speed = 115200
方法二:
(1)在用户目录中找到 .platformio\platforms\espressif32\boards 目录
(2)新建一个名字为 esp32-c3.json 的文件,复制以下内容:
{
"build": {
"arduino":{
"ldscript": "esp32c3_out.ld"
},
"core": "esp32",
"f_cpu": "160000000L",
"f_flash": "80000000L",
"flash_mode": "dio",
"mcu": "esp32c3",
"variant": "esp32c3"
},
"connectivity": [
"wifi"
],
"debug": {
"openocd_target": "esp32c3.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "Espressif ESP32-C3-openluat",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitm-1.html",
"vendor": "Espressif"
}
(3)重启Visual Studio Code ,新建工程
经过漫长的等待,就可以采用Arduino框架进行开发了
参考资料:使用PlatformIo 把玩 合宙ESP32-C2 - 哔哩哔哩
/*
*流水灯测试程序
*/
#include
int led1 = 12;
int led2 = 13;
void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop() {
digitalWrite(led1,HIGH);digitalWrite(led2,LOW);
delay(1000);
digitalWrite(led1,LOW);digitalWrite(led2,HIGH);
delay(1000);
}
/*
*使用millis()点灯
*/
#include
int led1 = 12;
int led2 = 13;
unsigned long previousBlinkTime;
int blinkInterval = 1000; // LED闪烁时间间隔
bool toggle;
void millisBlink(unsigned long currentTime)
{
//检查是否到达时间间隔
if (currentTime - previousBlinkTime >= blinkInterval)
{ //如果时间间隔达到了
toggle = (toggle == 1) ? 0 : 1;
digitalWrite(led1, toggle); //执行闪烁LED操作
previousBlinkTime = currentTime; // 将检查时间复位
Serial.print(F("toggle = "));
Serial.println(toggle);
}
else if (currentTime - previousBlinkTime <= 0)
{ // 如果millis时间溢出
previousBlinkTime = currentTime;
}
}
void setup()
{
Serial.begin(115200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis(); // 获取当前时间
millisBlink(currentMillis);
}