ESP32-C3 CORE 开发板,接口摸底
合宙的 ESP32-C3 CORE 开发板有 经典版(含CH343转串口芯片)和简约版(USB直接拉通芯片),设备管理器中显示的串口号不同:


下载2个版本的线路图,D4-GPIO12,D5-GPIO13 LED灯,KEY-GPIO19按键 标上注记,可以看出经典版走 CH343-GPIO20/21,简约版走 USB-GPIO18/19


找到 blink.py 稍作修改,就能亮灯。
保存 + 执行 blink_input_ESP32-C3.py,D4/ D5 j交替亮灯,SHELL窗口显示BOOT按键值 key_boot: 1 ,key_boot: 0
# -*- coding: UTF-8 -*-
# 合宙CORE ESP32-C3 核心板板载2颗LED + 16MB Flash(原4MB)
# D4(GPIO12) 高电平有效
# D5(GPIO13) 高电平有效
import time
from machine import Pin
ledD4=Pin(12, Pin.OUT, value=0) #create LED object from pin12,Set Pin12 to output
ledD5=Pin(13, Pin.OUT, value=0) #create LED object from pin13,Set Pin13 to output
key_boot = Pin(9, Pin.IN, Pin.PULL_UP) # GPIO9/ KEY-BOOT_active0
print("key_boot:", key_boot())
while True:
ledD4.value(1) #turn on
ledD5.value(0) #turn off
time.sleep(0.5)
print("key_boot:", key_boot())
ledD4(0) #turn off
ledD5(1) #turn on
time.sleep(0.5)
print("key_boot:", key_boot())
测试所有GPIO口的输入上下拉 与 输出特性:

把GPIO口依序填入 ps[ ] 并执行测试。
ps = [2,3,10,6,7,11,5,4,8,9,0,1,12,13,18,19] #ESP32-C3 CH343 ,20,21
保存 + 执行 GPIOtest_ESP32-C3_CH343.py
SHELL窗口报错,无法使用,例如正在通信的 CH343-GPIO20/21
# 合宙CORE ESP32-C 核心板板载2颗LED + 16MB Flash(原4MB)
# D4(GPIO12) 高电平有效
# D5(GPIO13) 高电平有效
from machine import Pin
import time
ps = [2,3,10,6,7,11,5,4,8,9,0,1,12,13,18,19] #ESP32-C3 CH343 ,20,21
for p in ps:
pi = Pin(p,Pin.IN,pull = Pin.PULL_DOWN)
if(pi() == 1):
print(p,pi(),"mode in with pulldown FAIL")
for p in ps:
pi = Pin(p,Pin.IN,pull = Pin.PULL_UP)
if(pi() == 0):
print(p,pi(),"mode in with pullup")
for p in ps:
pi = Pin(p,Pin.OUT,pull = Pin.PULL_DOWN)
pi(1)
if(pi() == 0):
print(p,pi(),"out 1 FAIL")
pi(0)
if(pi() == 1):
print(p,pi(),"out 0 FAIL")
led_d4 = Pin(12,Pin.OUT,pull = Pin.PULL_DOWN,value = 1) # D4 on
led_d5 = Pin(13,Pin.OUT,pull = Pin.PULL_DOWN,value = 0) # D5 off
while True:
time.sleep_ms(500)
led_d4(0)
led_d5(1) # D5 on
time.sleep_ms(500)
led_d4(1)
led_d5(0) # D5 off
把GPIO口依序填入 ps[ ] 并执行测试。
ps = [2,3,10,6,7,11,5,4,8,9,0,1,12,13,20,21] #ESP32-C3 USB ,18,19
保存 + 执行 GPIOtest_ESP32-C3_USB.py
SHELL窗口报错,无法使用,例如正在通信的USB-GPIO18/19
# 合宙CORE ESP32-C 核心板板载2颗LED + 16MB Flash(原4MB)
# D4(GPIO12) 高电平有效
# D5(GPIO13) 高电平有效
from machine import Pin
import time
ps = [2,3,10,6,7,11,5,4,8,9,0,1,12,13,20,21] #ESP32-C3 USB ,18,19
for p in ps:
pi = Pin(p,Pin.IN,pull = Pin.PULL_DOWN)
if(pi() == 1):
print(p,pi(),"mode in with pulldown FAIL")
for p in ps:
pi = Pin(p,Pin.IN,pull = Pin.PULL_UP)
if(pi() == 0):
print(p,pi(),"mode in with pullup")
for p in ps:
pi = Pin(p,Pin.OUT,pull = Pin.PULL_DOWN)
pi(1)
if(pi() == 0):
print(p,pi(),"out 1 FAIL")
pi(0)
if(pi() == 1):
print(p,pi(),"out 0 FAIL")
led_d4 = Pin(12,Pin.OUT,pull = Pin.PULL_DOWN,value = 1) # D4 on
led_d5 = Pin(13,Pin.OUT,pull = Pin.PULL_DOWN,value = 0) # D5 off
while True:
time.sleep_ms(500)
led_d4(0)
led_d5(1) # D5 on
time.sleep_ms(500)
led_d4(1)
led_d5(0) # D5 off

执行结果
心得:
- ps = [2,3] 可以一个一个的将GPIO数填入,马上做测试,不能用的GPIO口会报错或者无法正常执行
- 点亮 led_d4 能有多种写法:led_d4(1),led_d4.value(1)。有一种写法,这里不适用 led_d4.high()
- Tonny IDE 切换串口很容易,测试2个板子不费劲
- 试错在 micropython 里真的很方便,学习上更有效率

开始 micropython 编程之旅,要拿一款开发板来检验测试,手上有ESP32-C3 经典款/ 简约版 2个板子,搭配 Tonny IDE,很容易切换测试
浙公网安备 33010602011771号