ESP32C3初应用:点灯及ADC
1.点灯,按照顺序文件->01.Bascis->Blink,界面如下:

需确保ESP32的支持文件已经安装好,Flash模式改为“DIO”:


这时候是可以正常“上传”的,但成功后开发板可能没有反应,按一下板上的"RST"按键,会发现有个灯按照1Hz的频率闪烁起来了。实际上,开发板上有两个灯(LED),分别接12,13脚,我们可以让两个灯交替闪烁起来,代码如下:
// the setup function runs once when you press reset or power the board
void setup() {// initialize digital pin GPIO12,13 as an output.pinMode(12, OUTPUT);pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {digitalWrite(12, HIGH); // turn the LED(GPIO12) on (HIGH is the voltage level)digitalWrite(13, LOW); // turn the LED(GPIO13) off by making the voltage LOWdelay(1000); // wait for a seconddigitalWrite(12, LOW); // turn the LED(GPIO12) off digitalWrite(13, HIGH); // turn the LED(GPIO13) ondelay(1000); // wait for a second
}
2.ADC测试,按照顺序文件->示例->01.Basics->AnalogReadSerial,需要注意“Flash Mode”选择“DIO”,“USB CDC On Boot”选择“Enabled”(对于标准款来说选择“Disabled”)。直接“上传”,应该可以正常运行。delay(1)的延迟时间过短,不利于观察,需将之改为1000,“上传”后,利用工具->串口监视器,观察效果:

对于简约款来说,此处的波特率无需和代码所设的"9600"一致,但标准款需保持相同,否则无法正常显示。
按照顺序打开文件->示例->ESP32->AnalogRead,出现了另外一个函数“analogReadMilliVolts”,其返回值是以毫伏为单位的电压值,并且已经校准,更接近于实际值。考虑到ESP32C3有5个ADC输入端,分别对应GPIO0~4,将源程序加以修改,获取全部ADC输入值,代码如下:
void setup() {// initialize serial communication at 115200 bits per second:Serial.begin(115200);//set the resolution to 12 bits (0-4095)analogReadResolution(12);
}
void loop() {// read the millivolts value for pin 0~4:int analogVolts0 = analogReadMilliVolts(0);int analogVolts1 = analogReadMilliVolts(1);int analogVolts2 = analogReadMilliVolts(2);int analogVolts3 = analogReadMilliVolts(3);int analogVolts4 = analogReadMilliVolts(4);// print out the values you read:Serial.printf("ADC0 millivolts value = %dmV\n", analogVolts0);Serial.printf("ADC1 millivolts value = %dmV\n", analogVolts1);Serial.printf("ADC2 millivolts value = %dmV\n", analogVolts2);Serial.printf("ADC3 millivolts value = %dmV\n", analogVolts3);Serial.printf("ADC4 millivolts value = %dmV\n", analogVolts4);delay(1000); // delay in between reads for clear read from serial
}
效果如下图:

再次提醒,对于标准款来说“USB CDC On Boot”选择“Disabled”,并且波特率要和代码里的“115200”保持一致。

