上一贴详细录制了 开发板升级bootloader 刷固件的过程。
https://forum.eepw.com.cn/thread/398007/1
之后就可以将 circuitpython-10.0.3的 uf2 文件拖进u盘,完成 cpython环境的安装。
好了,废话不说,拿到一个新板子第一步,肯定是先点灯!也就是用GPIO输出控制LED点亮。
----------------------------------------------------------------------------------------------
l熟悉 board 模块
编辑器用mu或者在线的circuitpython IDE 都挺方便,网址是:
https://urfdvw.github.io/circuitpython-online-ide-2/

界面也很简单,共三列,最左边点击后选择U盘驱动器,中间的是文本编辑器,点击step2,选择插入开发板后的com口,然后就连接上了串口;串口控制台显示在最右侧,ctl+C 结束命令,ctl+D软重启。
Python是解释性的语言,可以编探索边开发。先来看看 board模块,它对板子包装了一些自带的资源,如图最右一列,导入board模块后,使用dir(board)可以看到已实现定义的资源常量,其中的LED、DISPLAY、NEOPIXEL等就是我们后面要用到的资源。
board模块:开发板规格针脚名称,官方文档:
https://docs.circuitpython.org/en/latest/shared-bindings/board/index.html
----------------------------------------------------------------------------------------------
l 使用GPIO13点亮 LED灯并闪烁
预定义的board.LED 就是板子背面的红色led灯。查看丝印为#13即接到芯片的GPIO13引脚。先用digitalio模块来控制单个GPIO13点亮这个LED试试,Digitalio模块提供了基本的GPIO支持,官方文档如下:
https://docs.circuitpython.org/en/latest/shared-bindings/digitalio/index.html
控制板载LED红灯闪烁的代码如下:
import time import board import digitalio led = digitalio.DigitalInOut(board.LED) led.direction = digitalio.Direction.OUTPUT while True: led.value = True time.sleep(0.5) led.value = False time.sleep(0.5) time.sleep(0.5)
保存后自动下载并reload,代码即开始执行,如果没有错误可看到效果:

----------------------------------------------------------------------------------------------
l 点亮RGB三色灯
三色灯由2个GPIO控制,一个控制power一个控制颜色,分别为GPIO21和GPIO33,如下图所示:

Adafruit给我们提供了一个专用的库来控制RGB三色灯,极大简化了使用。但是这个模块非内置,需要事先安装。安装方法也很简单,第一步下载预编译的库文件mpy格式,NeoPixel库:
https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/releases
第二步就是讲mpy文件拷贝到u盘的lib文件夹下,搞定!如下图所示:

我们编写一个循环控制RGB三色灯依次显示8种颜色的程序,代码如下:
import time import board import digitalio import neopixel # RGB灯珠电源控制, GPIO21 power = digitalio.DigitalInOut(board.NEOPIXEL_POWER) power.direction = digitalio.Direction.OUTPUT power.value = True # RGB灯珠 设置 pixel = neopixel.NeoPixel(board.NEOPIXEL, 1) pixel.brightness = 0.5 '''颜色循环:8种颜色''' while True: pixel.fill((255,0,0)) time.sleep(0.5) pixel.fill((0,255,0)) time.sleep(0.5) pixel.fill((0,0,255)) time.sleep(0.5) pixel.fill((0,255,255)) time.sleep(0.5) pixel.fill((255,0,255)) time.sleep(0.5) pixel.fill((255,255,0)) time.sleep(0.5) pixel.fill((255,255,255)) time.sleep(0.5) pixel.fill((0,0,0)) time.sleep(0.5)
保存后自动reload程序执行,运行效果如下:

----------------------------------------------------------------------------------------------
l LCD屏幕显示:
板子上的LCD屏幕,就是 board模块中预先定义的 DISPLAY,引脚情况如下图:

同样,adafruit为我们提供了封装库 adafruit_display_text,可以从 https://circuitpython.org/libraries 下载最新的bundle文件 adafruit-circuitpython-bundle-10.x-mpy-20251206.zip 中找到这个库,整个目录拷贝到U盘的lib文件夹下,如下图所示:

参考大神的代码编写LCD文本显示的代码。使用scale=2 的缩放,屏幕刚好可以输出6行文字,每行显示20个英文字母或数字。相关代码如下:
import time import board import displayio import terminalio from adafruit_display_text import label # 1.配置屏幕 display = board.DISPLAY # 2.显示文本 text = "Hello" text_group = displayio.Group( scale=2,x=0,y=0,) for i in range(6): #添加6行 text_line = label.Label(terminalio.FONT, text=text, color=0xFFFF00,x=0,y=6+11*i) text_group.append(text_line) display.root_group = (text_group) i=0 while True: text_group[i%6].text = "count=%d~012345678901234567890" % i i=i+1 i=i%100 time.sleep(0.5)
上述代码的效果如下(依次改写每行的文字):

----------------------------------------------------------------------------------------------
好了,今天就先学到这里。明天继续:
GPIO按钮输入,颜色传感器数据采集,蜂鸣器输入 beep~~beep~~~
zhw 2025.12.8
我要赚赏金
