首页 > 其他分享 >K230学习记录

K230学习记录

时间:2024-12-28 21:19:24浏览次数:5  
标签:FPIOA LED Pin 记录 K230 引脚 fpioa 学习 time

K230学习记录

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

image-20241228141006685

串口0(115200),连接进入

image-20241228141749689

打印U-Boot信息

image-20241228141303262

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、也可以在串口终端使用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)

标签:FPIOA,LED,Pin,记录,K230,引脚,fpioa,学习,time
From: https://www.cnblogs.com/tianwuyvlianshui/p/18637974

相关文章

  • 2024-2025-1 20241413 《计算机基础与程序设计》第十四周学习总结
    |班级链接|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP||作业要求|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14|教材学习内容总结《c语言程序设计>第十三,十四章第13章:文件操作文件的概念:介绍文件的基本概念,包括文件的分类(文本文件和二进制文件)以及文......
  • 基于YOLOv8深度学习的智慧海洋SAR图像舰船目标检测系统
    随着海上交通的日益繁忙和海上安全管理需求的提升,基于合成孔径雷达(SAR)图像的舰船目标检测成为海上监控系统中的重要研究领域。本文提出了一种基于YOLOv8的舰船目标检测系统,该系统能够高效地处理SAR图像并自动识别其中的舰船目标。为了提高目标检测的准确性和实时性,本文采用YOLO......
  • 学期(2024-2025-1) 学号(20241420) 《计算机基础与程序设计》第十四周学习总结
    学期(2024-2025-1)学号(20241420)《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第十四周作业)这个作业的目标<《C语......
  • 学习笔记 - 摩斯电码
    摩斯电码由美国人塞缪尔·莫尔斯等人发明,仅用“·”(点)与“-”(划)两种符号,按不同排列组合来代表英文字母、数字和标点。起初应用于有线电报,后应用到无线电通信,曾长期担任关键角色。如今,虽因通信技术革新而不再主流,但在业余无线电爱好者群体中依旧流行,紧急救援时也会派上用场。摩斯......
  • 学习笔记 - 汉明码
    汉明码属于一种具备纠错功能的线性分组码。线性分组码,是将信息序列按特定长度分组(设长度为\(k\)),每组信息位会相应生成一组由信息位与监督位共同构成的码字(设长度为\(n\),且\(n>k\)),各码字之间遵循线性关系。汉明码的纠错能力使其能够识别并修正传输、存储环节里出现的错误。在数......
  • 2024-2025-1 20241407《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2024-2025-1计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第十四周作业这个作业的目标学习二进制文件和文本文件,文件的打开和关闭,顺序读写与随机读写,标准输入和输出及其重定向作业正文本博客教材学......
  • GraphMAE2(解码增强型掩码自监督图学习器)
    GraphMAE2:ADecoding-EnhancedMaskedSelf-SupervisedGraphLearner解码增强型掩码自监督图学习器背景​ 近年来,自监督学习(Self-supervisedLearning,SSL)得到了广泛的探索,特别是生成式自监督学习在自然语言处理以及其他人工智能领域已经取得了新兴的成功,像BERT和GPT就......
  • 《商业分析方法论与实践指南》---从零开始学习
    前言1.什么是真正的商业分析:答:懂业务、懂数据、懂方法论2.学习完整本书,应该收获什么?答:构成商业分析知识体系+形成商业分析全景图第一章:什么是商业分析1.1商业分析思维1.2如何培养出商业分析的思维注重逻辑:把大问题肢解成若干小问题,形成结构化、框架化、分支化,解决问......
  • 如意小仙女前端学习第N+3天——事件冒泡
    为什么要阻止冒泡?怎么解决?很简单的一个例子,盒子one中有一个盒子two,盒子two中有一个button上面绑着事件a,而这个相同事件恰巧在盒子one和two中也有,当button事件被触发时,one和two中的事件也会被触发,所以我们需要进行阻止。<!DOCTYPEhtml><html><head><metacharse......
  • 解锁风电运维新密码:深度学习神经网络助力设备寿命精准预估
    摘要:当下,风电产业蓬勃发展,可恶劣运行环境使设备故障频发,精准预估剩余寿命迫在眉睫。深度学习中的神经网络为此带来曙光,其基础源于对大数据处理需求的回应,借由神经元、层架构自动提取特征。在风电应用里,CNN、LSTM深挖多源异构数据特征,MLP等架构构建预测模型,配合优化算法训......