K230学习记录

K230学习记录

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

image-20241228141006685

image-20241230092809837

图 1

image-20241230093454136

image-20241230224653459

image-20241230224758561

image-20241230224853899

串口0(RT-Smart)

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

image-20241228141749689

默认进入MicroPython运行

输入q,退出MicroPython程序

image-20241230091730930

OpenMV Cam USB COM

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

image-20241230092357712

串口0(RT-Smart)使用

打印U-Boot信息

image-20241228141303262

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

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

image-20241230223853642

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

cd micropython
./micropython

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

image-20241230223254803

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

image-20241230223800115

image-20241230223653672

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

使用OpenMV Cam USB COM

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

打印出各GPIO的复用功能

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

image-20241205213653911

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)

image-20241228125450968

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

image-20241228125727862

此时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()  # 打开蓝灯

按键

image-20241205215050434

引脚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)
posted @   沁拒离  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示