备战电赛之K210篇(第一天)

发布时间:2024年01月24日

K210学习第一天,了解K210也可以GPIO,I2C

《一》

import sensor, lcd

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames()

lcd.init(freq=15000000)

while(True):
    lcd.display(sensor.snapshot())

这个是在官网上看的,

但是运行之后,电脑上的正常,LCD却显示不正常

在多次查找之后

import sensor, lcd

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames()

lcd.init(freq=15000000)
lcd.init(type=2)
lcd.rotation(2)

while(True):
    lcd.display(sensor.snapshot())
lcd.init(type=2)少了这一句,

lcd.init(type=1, freq=15000000, color=lcd.BLACK)

这是默认为一,我的改为二,就可以。

学会K210先会玩玩LCD——显示hello,这是以图片的形式

import lcd
import image


lcd.init(type=2,freq=15000000,color=lcd.BLACK)#初始化
lcd.rotation(2)#方向

img = image.Image()
img.draw_string(100, 100, "hello maixpy", scale=2)#(位置,内容,大小) 
lcd.display(img)

正常显示,我的LCD必须这么设置才能正常显示

import lcd
import image


lcd.init(type=2,freq=15000000,color=lcd.BLACK)
lcd.rotation(2)
lcd.draw_string(100, 100, "hello maixpy", lcd.RED, lcd.BLACK)
1.3. lcd.width()
返回 LCD 的宽度(水平分辨率)

1.4. lcd.height()
返回 LCD 的高度(垂直分辨率)。

《二》——点灯

? ? ? ?GPIO和Pin的理解——GPIO可以为功能,Pin为口。我们要做的是将,让Pin口有GPIO的功能。

from fpioa_manager import fm    # 导入库
fm.register(28, fm.fpioa.GPIO0)

这样Pin28有GPIO0的功能

import utime
from Maix import GPIO
from board import board_info
from fpioa_manager import fm#主要用于引脚和外设的映射


while True:
    fm.register(board_info.LED_R,fm.fpioa.GPIO0)#fm.fpioa.GPIO0 注册到了LED_R上为实际为pin——14
    led_r=GPIO(GPIO.GPIO0,GPIO.OUT)#GPIO配置为输出模式
    utime.sleep_ms(100)#Delay
    led_r.value(0)#低电平点亮
    utime.sleep_ms(100)
    led_r.value(1)
    fm.unregister(board_info.LED_R)#释放

以此推出了灯的变化

import utime
from Maix import GPIO
from board import board_info
from fpioa_manager import fm

a=True
while a:
    #fm.register(board_info.LED_R,fm.fpioa.GPIO0)
    #print(board_info.LED_R)
    fm.register(14,fm.fpioa.GPIO4)
    led_r=GPIO(GPIO.GPIO4,GPIO.OUT)
    fm.register(13,fm.fpioa.GPIO3)
    led_b=GPIO(GPIO.GPIO3,GPIO.OUT)
    fm.register(12,fm.fpioa.GPIO2)
    led_g=GPIO(GPIO.GPIO2,GPIO.OUT)
    for i in range(11):
        utime.sleep_ms(100)
        led_r.value(0)
        utime.sleep_ms(100)
        led_r.value(1)
        
        utime.sleep_ms(100)
        led_b.value(0)
        utime.sleep_ms(100)
        led_b.value(1)
        
        utime.sleep_ms(100)
        led_g.value(0)
        utime.sleep_ms(100)
        led_g.value(1)
        utime.sleep_ms(100)
      
        if i==9:
            a=False
fm.unregister(board_info.LED_R)

下来是视频——

电灯结束

《GPIO进一步理解》

? ?GPIO

只有GPIO的高速口有上拉和下拉:

详细看这里:GPIO - Sipeed Wiki

下来是GPIO的配置:
记住Pin是IO口,而GPIO是一种功能

from Maix import GPIO
from board import board_info
from fpioa_manager import fm
print("开始")
while 1:

    fm.register(1,fm.fpioa.GPIO1)#配置Pin1口
    P1=GPIO(GPIO.GPIO1,GPIO.OUT)
    P1.value(1)

在Pin1口就会是高电平。

文章来源:https://blog.csdn.net/a2488220557/article/details/135770464
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。