canmv-k230使用摄像头出现紫色画面,并且显示不完全,怎么修复?

Viewed 73

重现步骤

将摄像头显示画面程序设置为开机自启动,插type-C开机,有一定概率出现紫色画面的问题,并且摄像头画面显示不完整,一直刷。

软硬件版本信息

01studio主板,gc2093摄像头,microPython固件V1.2.2版本

尝试解决过程

尝试过排出屏幕问题,当出现紫屏后,通过按键切换只显示屏幕内容,发现屏幕显示正常,重新切换回摄像头显示,故障依然存在。
重启设备后,显示又可以恢复正常。属于概率性问题。

补充材料

图片
示例图片

使用源码:

import time, math, os, gc, sys

from media.sensor import *
from media.display import *
from media.media import *

WIDTH = 800
HEIGHT = 480

sensor = None

try:
    # construct a Sensor object with default configure
    sensor = Sensor(width = WIDTH, height = HEIGHT)
    # sensor reset
    sensor.reset()
    # set hmirror
    # sensor.set_hmirror(False)
    # sensor vflip
    # sensor.set_vflip(False)

    # set chn0 output size
    sensor.set_framesize(width = WIDTH, height = HEIGHT)
    # set chn0 output format
    sensor.set_pixformat(Sensor.RGB565)


    # use IDE as output
    Display.init(Display.ST7701, width = WIDTH, height = HEIGHT, to_ide = True)

    # init media manager
    MediaManager.init()
    # sensor start run
    sensor.run()

    fps = time.clock()

    while True:
        fps.tick()

        # check if should exit.
        os.exitpoint()

        img = sensor.snapshot()

        # draw result to screen
        Display.show_image(img)
        gc.collect()

        print(fps.fps())
except KeyboardInterrupt as e:
    print(f"user stop")
except BaseException as e:
    print(f"Exception '{e}'")
finally:
    # sensor stop run
    if isinstance(sensor, Sensor):
        sensor.stop()
    # deinit display
    Display.deinit()

    os.exitpoint(os.EXITPOINT_ENABLE_SLEEP)
    time.sleep_ms(100)

    # release media buffer
    MediaManager.deinit()

1 Answers