K210基础实验系列

news/2024/11/20 23:27:10/

 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')) #数据回传


http://www.ppmy.cn/news/1295407.html

相关文章

Vue(三):Vue 生命周期与工程化开发

2023 的最后一篇博客,祝大家元旦快乐,新的一年一起共勉! 06. Vue 生命周期 6.1 基本介绍 生命周期就是一个 Vue 示例从 创建 到 销毁 的整个过程,创建、挂载、更新、销毁 有一些请求是必须在某个阶段完成之后或者某个阶段之前执行…

计算机组成原理(万字爆肝整理)

第一章 计算机系统概述 “较简单,不做过多赘述,后面会详细学到” 第一节 计算机系统层次结构 1.计算机系统的基本组成:硬件软件 2.计算机硬件的基本组成:运算器存储器控制器输入设备输出设备 3.系统软件和应用软件 系统软件…

dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib

更新Xcode14后低版本iPhone调试报错 dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib Referenced from: /var/containers/Bundle/Application/…/….app/… Reason: image not found 这是缺少libswiftCoreGraphics库 直接导入libswiftCoreGraphics库即…

全国(山东、安徽)职业技能大赛--信息安全管理与评估大赛题目+答案讲解——网络数据包分析

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步…

springboot 2.7 oauth server配置源码走读一

springboot 2.7 oauth server配置源码走读 入口: 上述截图中的方法签名和OAuth2AuthorizationServerConfiguration类中的一个方法一样,只不过我们自己的配置类优先级比spring中的配置类低,算是配置覆盖,看下图所示: …

坐标转换 | EXCEL中批量将经纬度坐标(EPSG:4326)转换为墨卡托坐标(EPSG:3857)

1 需求 坐标系概念: 经纬度坐标(EPSG:4326):WGS84坐标系(World Geodetic System 1984)是一种用于地球表面点的经纬度坐标系。它是美国国防部于1984年建立的,用于将全球地图上的点定位&#xff0…

【OJ】C++,Java,Python,Go,Rust

for循环语法 // cpp// java// python for i in range(集合): for i, val in enumerate(集合): for v1,v2,v3,... in zip(集合1,集合2,集合3,...):Pair // cpp pair<int, string> first second // java Pair<Integer, String> first() new Pair<>(firstVal…

k8s的声明式资源管理(yaml文件)

1、声明式管理的特点 &#xff08;1&#xff09;适合对资源的修改操作 &#xff08;2&#xff09;声明式管理依赖于yaml文件&#xff0c;所有的内容都在yaml文件当中 &#xff08;3&#xff09;编辑好的yaml文件&#xff0c;还是要依靠陈述式的命令发布到k8s集群当中 kubect…