K230学习记录

参考自:
# 立创·庐山派-K230-CanMV开发板资料与相关扩展板软硬件资料官网全部开源
# 开发板官网:www.lckfb.com
# 技术支持常驻论坛,任何技术问题欢迎随时交流学习
# 立创论坛:www.jlc-bbs.com/lckfb

串口0(RT-Smart)

(115200)用户无法调用,被内部系统(RT-Smart)占用为控制台串口。连接进入rt-smart,操控大核。

默认进入MicroPython运行

输入q,退出MicroPython程序

OpenMV Cam USB COM

(串口终端)此时另一个OpenMV Cam USB COM串口终端退出执行MicroPython

串口0(RT-Smart)使用

打印U-Boot信息

<DIR>表示该条目是一个目录。例如,bin <DIR>表示bin是一个目录。

  • bin:存放二进制可执行文件,通常包含系统启动时需要的程序和脚本。
  • sdcard:通常指向设备的内部存储或外部SD卡,用于存放用户数据,如下载的文件、照片、音乐等。
  • data:存放应用程序数据和系统数据。
  • dev:包含设备文件,这些文件用于与硬件设备进行交互。
  • proc:是一个虚拟文件系统,用于提供系统和进程的信息。
  • tmp:用于存放临时文件。

在串口0,RT-Smart中去到sd卡目录执行micro python

cd micropython
./micropython

此时串口0的RT-Smart被占用,运行micro python

此时在OpenMV Cam USB COM串口终端中再次运行micro python

PS:退出micro python则须在串口0终端输入q并回车

使用OpenMV Cam USB COM

在IDE中ctrl+R可以快速重装载程序并执行

打印出各GPIO的复用功能

from machine import FPIOA
# 实例化FPIOA
fpioa = FPIOA()
# 打印所有引脚配置
fpioa.help()

LED(RGB三色灯)

红GPIO62

绿GPIO20

蓝GPIO63

1、粘贴进CanMV IDE K230执行

from machine import Pin
from machine import FPIOA
import time
# 创建FPIOA对象,用于初始化引脚功能配置
fpioa = FPIOA()
# 设置引脚功能,将指定的引脚配置为普通GPIO功能,
fpioa.set_function(62,FPIOA.GPIO62)
fpioa.set_function(20,FPIOA.GPIO20)
fpioa.set_function(63,FPIOA.GPIO63)
# 实例化Pin62, Pin20, Pin63为输出,分别用于控制红、绿、蓝三个LED灯
LED_R = Pin(62, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 红灯
LED_G = Pin(20, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 绿灯
LED_B = Pin(63, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 蓝灯
# 板载RGB灯是共阳结构,设置引脚为高电平时关闭灯,低电平时点亮灯
# 初始化时先关闭所有LED灯
LED_R.high() # 关闭红灯
LED_G.high() # 关闭绿灯
LED_B.high() # 关闭蓝灯
# 基础点灯试验:选择一个LED灯并让其闪烁
# 默认选择红色LED灯,后续可以通过变量改变需要控制的灯
LED = LED_R # 当前控制的LED为红色LED
while True:
LED.low() # 点亮当前选择的LED
time.sleep(0.5) # 等待0.5秒
LED.high() # 熄灭当前选择的LED
time.sleep(0.5) # 等待0.5秒from machine import Pin

2、也可以在OpenMV Cam USB COM串口终端使用MicroPython操控K230(波特率115200)

可以复制上面一整段代码粘贴进串口终端,然后回车两次执行

此时RGB_Red按照上面代码间隔0.5s闪烁

也可以分段输入,单句执行操作

首先引入使用到的MicroPython模块

from machine import Pin
from machine import FPIOA

初始化RGB引脚

# 创建FPIOA对象,用于初始化引脚功能配置
fpioa = FPIOA()
# 设置引脚功能,将指定的引脚配置为普通GPIO功能,
fpioa.set_function(62,FPIOA.GPIO62)
fpioa.set_function(20,FPIOA.GPIO20)
fpioa.set_function(63,FPIOA.GPIO63)
# 实例化Pin62, Pin20, Pin63为输出,分别用于控制红、绿、蓝三个LED灯
LED_R = Pin(62, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 红灯
LED_G = Pin(20, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 绿灯
LED_B = Pin(63, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 蓝灯

操作RGB单色灯(粘贴至串口终端回车执行)

LED_R.high()  # 关闭红灯
LED_G.high()  # 关闭绿灯
LED_B.high()  # 关闭蓝灯
LED_B.low()  # 打开蓝灯
LED_B.low()  # 打开蓝灯
LED_B.low()  # 打开蓝灯

按键

引脚GPIO53上

from machine import Pin
from machine import FPIOA
import time # 创建FPIOA对象,用于初始化引脚功能配置
fpioa = FPIOA() # 设置引脚功能,将指定的引脚配置为普通GPIO功能,
fpioa.set_function(62,FPIOA.GPIO62)
fpioa.set_function(20,FPIOA.GPIO20)
fpioa.set_function(63,FPIOA.GPIO63)
fpioa.set_function(53,FPIOA.GPIO53) # 实例化Pin62, Pin20, Pin63为输出,分别控制红、绿、蓝三个LED灯
LED_R = Pin(62, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 红灯
LED_G = Pin(20, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 绿灯
LED_B = Pin(63, Pin.OUT, pull=Pin.PULL_NONE, drive=7) # 蓝灯 # 按键引脚为53,按下时高电平,设置为输入模式
button = Pin(53, Pin.IN, Pin.PULL_DOWN) # 使用下拉电阻 # 初始选择控制红灯
LED = LED_R # 默认控制红灯 # 初始化时关闭所有LED灯(共阳:高电平时为灭灯)
LED_R.high()
LED_G.high()
LED_B.high() # 消抖时间设置为20毫秒
debounce_delay = 20 # 毫秒
last_press_time = 0 # 上次按键按下的时间,单位为毫秒 # 记录LED当前状态,True表示亮,False表示灭
led_on = False # 记录按键状态,用于检测按下和松开的状态变化
button_last_state = 0 # 上次按键状态 # 主循环
while True:
button_state = button.value() # 获取当前按键状态
current_time = time.ticks_ms() # 获取当前时间(单位:毫秒) # 检测按键从未按下(0)到按下(1)的变化(上升沿)
if button_state == 1 and button_last_state == 0:
# 检查按键是否在消抖时间外
if current_time - last_press_time > debounce_delay:
# 切换LED的状态
if led_on:
LED.high() # 熄灭LED
else:
LED.low() # 点亮LED led_on = not led_on # 反转LED状态
last_press_time = current_time # 更新按键按下时间 # 更新上次按键状态
button_last_state = button_state # 简单延时,防止主循环过于频繁
time.sleep_ms(10)

K230学习记录的更多相关文章

  1. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  5. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  6. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  7. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  8. UWP学习记录8-设计和UI之控件和模式5

    UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...

  9. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

  10. UWP学习记录6-设计和UI之控件和模式3

    UWP学习记录6-设计和UI之控件和模式3 1.按钮 按钮,响应用户输入和引发 Click 事件的控件. 使用<Button>就能创建一个按钮控件了.按钮是 ContentControl, ...

随机推荐

  1. Element Plus组件库el-table单元格内容超出时tooltip显示优化

    前情 公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vu ...

  2. IDA+kali 远程动态调试

    一.找到IDA文件目录下的 linux_server和linux_server64 复制到kali中去 给权限: chmod a+x ./linux_server chmod a+x ./linux_ ...

  3. JWT相关知识点

    目录 一.jwt介绍和原理 概念 构成与工作原理 1.header 2.payload 3.signature 本质原理 jwt认证算法:签发与校验 签发:根据登录请求提交来的 账号 + 密码 + 设 ...

  4. [AI回答]Java中Long和long的区别,为什么在Springboot项目中一般使用Long

    Long 和 long 的区别 在Java中,Long 和 long 是两个不同的概念,它们分别代表不同的数据类型: long: 这是一个 基本数据类型 (primitive type). 它用于存储 ...

  5. linux tc命令进行网络限速、丢包、延迟设置(简单使用)

    linux自带tc命令版本不是很低的linux系统都自带tc如果你的系统不带这个命令,建议使用类似括号中的命令进行安装 (yum -y install iproute) TC 中使用下列的缩写表示相应 ...

  6. Spring Security OAuth2 - 自定义 OAuth2.0 令牌发放接口地址

    登录实现拿浏览器网页登录举例: 基于 OAuth2.0-密码模式 实现网页登录的本质就是浏览器通过 /oauth/token 接口将 用户名 和 密码 等信息传给后台, 然后后台验证通过后返回一个有效 ...

  7. Qt/C++音视频开发60-坐标拾取/按下鼠标获取矩形区域/转换到视频源真实坐标

    一.前言 通过在通道画面上拾取鼠标按下的坐标,然后鼠标移动,直到松开,根据松开的坐标和按下的坐标,绘制一个矩形区域,作为热点或者需要电子放大的区域,拿到这个坐标区域,用途非常多,可以直接将区域中的画面 ...

  8. Qt开源作品26-通用按钮地图效果

    一.前言 在很多项目应用中,需要根据数据动态生成对象显示在地图上,比如地图标注,同时还需要可拖动对象到指定位置显示,能有多种状态指示,安防领域一般用来表示防区或者设备,可以直接显示防区号,有多种状态颜 ...

  9. UML之属性与参数的多重性

    在UML中,多重性是指一个条目潜在的数量范围.多重性可被用于属性.操作参数.关联关系.UML元模型也使用多重性对元模型元素之间的关系进行约束.多重性总是包含基数值,它是相关条目在现实世界中的确切数量. ...

  10. [转]CMake与Make最简单直接的区别

    写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时就会特别麻烦 ...