1. LED
pyBoard中一共有4个LED,分别是是LED(1)-LED(4), LED的构造函数和调用方法如下所示:
点亮LED(4)的示例代码:
from pyb import LED
LED(4).on()
2. 按键
pyBoard上的按键有两个一个是复位键:RST,一个是用户使用的按键USER,MicroPython中关于按键的构造函数与调用方法为:
按键调用示例代码(按下USER点亮LED):
from pyb import LED,Switch
def fun1():
LED(4).toggle()
sw = Switch() #定义按键对象名字为sw
sw.callback(fun1) #当按键被按下时,执行函数fun1(),即LED(4)状态反转
回调函数的使用还可以替换为这样:
from pyb import LED,Switch
sw = Switch() #定义按键对象名字为sw
sw.callback(lambda:LED(4).toggle()) #当按键被按下时,LED(4)状态反转
3. GPIO
pyBoard上几乎所有的IO都可以进行GPIO的配置,其构造函数与调用方法如下所示:
GPIO示例代码:
from pyb import Pin
#将LED(4)-"B4"配置成推挽输出模式
p_out=Pin('B4',Pin.OUT_PP)
#将USR按键-"X17"配置为输入方式
p_in = Pin('X17', Pin.IN, Pin.PULL_UP)
while True:
if p_in.value()==0: #USR被按下接地
p_out.high() #点亮LED(4)蓝灯
else:
p_out.low() #关闭LED(4)蓝灯
示例中的‘B4’和‘X17’是LED(4)和USR对应的引脚:
4. 外部中断
外部中断由GPIO完成,pyBoard上基本每一个IO都有外部中断功能,外部中断的构造函数和调用方法如下所示:
外部中断示例方法:
from pyb import Pin,ExtInt,LED
callback = lambda e: LED(4).toggle()
#下降沿触发,打开上拉电阻
ext = ExtInt(Pin('Y1'), ExtInt.IRQ_FALLING, Pin.PULL_UP, callback)
5. I2C总线
以OLED和pyBoard的I2C通信为例,连接OLED的引脚分别是Y8(SDA)和Y6(SCL)。本例程使用MicroPython的Machine模块来定义Pin口和I2C初始化。
Mchine中的Pin的构造函数和使用方法:
Machine中的I2C的构造函数和使用方法:
示例代码如下:
from machine import I2C,Pin #从machine模块导入I2C、Pin子模块
from ssd1306 import SSD1306_I2C #从ssd1306模块中导入SSD1306_I2C子模块
i2c = I2C(sda=Pin("Y8"), scl=Pin("Y6")) #pyBoard I2C初始化:sda--> Y8, scl --> Y6
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c) #OLED显示屏初始化:128*64分辨率,OLED的I2C地址是0x3c
oled.text("Hello World!", 0, 0) #写入第1行内容
oled.text("MicroPython", 0, 20) #写入第2行内容
oled.text("By 01Studio", 0, 50) #写入第3行内容
oled.show() #OLED执行显示
6. ADC
pyBoard中内置的ADC的构造函数和调用方法为:
示例代码:
#导入相关模块
import pyb
from machine import Pin,I2C
#初始化相关模块
i2c = I2C(sda=Pin("Y8"), scl=Pin("Y6"))
adc = pyb.ADC('X7') #Pin='X7'
7. DAC
pyBoard中内置的DAC的构造函数和调用方法为:
示例代码:
from pyb import DAC,Switch
from machine import Pin,I2C
#初始化相关模块
i2c = I2C(sda=Pin("Y8"), scl=Pin("Y6"))
sw = Switch() #定义按键对象名字为sw
dac = DAC(1) #定义DAC对象名字为dac,输出引脚为X5
#定义4组频率值:1Hz、200Hz、1000Hz、5000Hz
freq=[1,200,1000,5000]
# 定义8位精度下方波的值。0、255分别对应输出0V、3.3V。需要定义成字节数组。
buf = bytearray(2)
buf[0]=0
buf[1]=255
key_node = 0 #按键标志位
i = 0 #用于选择频率数组
# 按键和其回调函数
def key():
global key_node
key_node = 1
sw.callback(key) #当按键被按下时,执行函数key()
while True:
if key_node==1: #按键被按下
i = i+1
if i == 4:
i = 0
key_node = 0 #清空按键标志位
#DAC输出指定频率
dac.write_timed(buf, freq[i]*len(buf), mode=DAC.CIRCULAR)
8. UART
pyBoard中一共有六个串口,其中串口5用作REPL调试,可供我们使用的的串口和对应的引脚如下所示:
pyb中UART的构造函数和使用方法如下所示:
UART的代码示例:
#导入串口模块
from pyb import UART
uart=UART(3,115200) #设置串口号3和波特率,TX--Y9,RX--Y10
uart.write('Hello 01Studio!')#发送一条数据
while True:
#判断有无收到信息
if uart.any():
text=uart.read(64) #默认单次最多接收64字节
print(text) #通过REPL打印串口3接收的数据
来源:CSDN
作者:Ethan、
链接:https://blog.csdn.net/qq_42580947/article/details/104145553