CanMV K210 开发板:
CanMV K210 是由 01Studio 设计研发,基于嘉楠科技边缘计算芯片 K210 ( RSIC
V 架构, 64 位双核)方案的一款开发板,采用硬件一体化设计( K210 核心板、
摄像头、 LCD 集成在一个 PCB 上),即拿即用
1:烧入LED例程
用canmv打开LED例程,选择串口后打开,点击绿色箭头即可烧入
K210 支持外部 IO 和内部 IO 任意映射,其片上外设(比如 GPIO 、 I2C 等)
对应的引脚是可以任意设置的,而传统大部分 MCU 片上外设和引脚对应关系已
经固定了, 只有部分引脚可以复用, 相比之下 K210 自由度更大
'''
实验名称:点亮LED蓝灯
版本:v1.0
日期:2022.9
作者:01Studio
实验目的:学习led点亮。
'''
from maix import GPIO
from fpioa_manager import fm#将蓝灯引脚IO35配置到GPIO0,K210引脚支持任意配置
fm.register(35, fm.fpioa.GPIO0)LED_B = GPIO(GPIO.GPIO0, GPIO.OUT) #构建LED对象
LED_B.value(0) #点亮LEDwhile True:pass
而后点击工具,保存当前脚本为巴拉巴拉,就可永久烧入到单片机进行执行
2:按键
'''
实验名称: 按键
版本: v1.0
日期: 2022.9
作者: 01Studio
社区: www.01studio.cc
'''
from maix import GPIO
from fpioa_manager import fm#注册IO,蓝灯-->IO35,KEY-->IO16
fm.register(35, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIO1)#初始化IO
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT)
KEY = GPIO(GPIO.GPIO1, GPIO.IN)while True:if KEY.value()==0: #按键被按下接地LED_B.value(0) #点亮LED,蓝灯else:LED_B.value(1) #熄灭LED
3:外部中断改变LED状态
'''
实验名称:外部中断
版本: v1.0
日期: 2022.9
作者: 01Studio
说明:通过按键改变 LED 的亮灭状态(外部中断方式)
'''from maix import GPIO
from fpioa_manager import fm
import utime#注册IO,注意高速GPIO口才有中断
fm.register(35, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIOHS0)#构建lED和KEY对象
LED_B=GPIO(GPIO.GPIO0,GPIO.OUT,value=1)
KEY=GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)#LED状态表示
state = 1#中断回调函数
def fun(KEY):global stateutime.sleep_ms(10) #消除抖动if KEY.value()==0: #确认按键被按下state = not stateLED_B.value(state)#开启中断,下降沿触发
KEY.irq(fun, GPIO.IRQ_FALLING)
4:定时闪烁且串口返回时间
'''
实验名称:定时器
版本: v1.0
日期: 2022.9
作者: 01Studio
说明:通过定时器让 LED 周期性每秒闪烁 1 次
'''
from maix import GPIO
from fpioa_manager import fm
from machine import Timer#注册IO和构建LED对象
fm.register(35, fm.fpioa.GPIO0)
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT)#计数变量
Counter=0#定时器回调函数
def fun(tim):global CounterCounter = Counter + 1print(Counter)LED_B.value(Counter%2)#LED循环亮灭。#定时器0初始化,周期1秒
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PERIODIC, period=1000, callback=fun)
5:PWM蜂鸣器
再由原理图
'''
实验名称: PWM
版本: v1.0
日期: 2022.9
作者: 01Studio
说明:通过不同频率的 PWM 信号输出,驱动无源蜂鸣器发出不同频率的声音。
'''
from machine import Timer,PWM
import time#PWM通过定时器配置,接到IO9引脚
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
beep = PWM(tim, freq=1, duty=50, pin=9)#循环发出不同频率响声。
while True:beep.freq(200)time.sleep(1)beep.freq(400)time.sleep(1)beep.freq(600)time.sleep(1)beep.freq(800)time.sleep(1)beep.freq(1000)time.sleep(1)
5:与电脑实现串口通信
'''
实验名称:串口通信
版本: v1.0
日期: 2022.9
作者: 01Studio
说明:通过编程实现串口通信,跟电脑串口助手实现数据收发。
'''from machine import UART,Timer
from fpioa_manager import fm#映射串口引脚
fm.register(6, fm.fpioa.UART1_RX, force=True)
fm.register(7, fm.fpioa.UART1_TX, force=True)#初始化串口
uart = UART(UART.UART1, 115200, read_buf_len=4096)
uart.write('Hello 01Studio!')while True:text=uart.read() #读取数据if text: #如果读取到了数据print(text.decode('utf-8')) #REPL打印uart.write('I got'+text.decode('utf-8')) #数据回传