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) #点亮LED
while 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 state
utime.sleep_ms(10) #消除抖动
if KEY.value()==0: #确认按键被按下
state = not state
LED_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 Counter
Counter = Counter + 1
print(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')) #数据回传