Example: 50-OpenMV-Boards/50-STM32-Boards/50-Board-Control/spi_control.py

# 本作品采用MIT许可证授权。
# 版权所有 (c) 2013-2023 OpenMV LLC。保留所有权利。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# SPI 控制
#
# 此示例展示了如何在您的OpenMV Cam上使用SPI总线直接
# 控制LCD扩展板,而不使用内置的LCD扩展板驱动程序。您需要
# LCD扩展板来运行此示例。

import sensor
import time
from pyb import Pin, SPI

cs = Pin("P3", Pin.OUT_OD)
rst = Pin("P7", Pin.OUT_PP)
rs = Pin("P8", Pin.OUT_PP)
# 您的OpenMV Cam的硬件SPI总线始终是SPI总线2。

# 注意:SPI 时钟频率不总是请求的频率。硬件仅支持
# 总线频率除以预分频器(可以是 2、4、8、16、32、64、128 或 256)的频率。
spi = SPI(2, SPI.MASTER, baudrate=int(1000000000 / 66), polarity=0, phase=0)


def write_command_byte(c):
    cs.low()
    rs.low()
    spi.send(c)
    cs.high()


def write_data_byte(c):
    cs.low()
    rs.high()
    spi.send(c)
    cs.high()


def write_command(c, *data):
    write_command_byte(c)
    if data:
        for d in data:
            write_data_byte(d)


def write_image(img):
    cs.low()
    rs.high()
    spi.send(img)
    cs.high()


# 重置LCD。
rst.low()
time.sleep_ms(100)
rst.high()
time.sleep_ms(100)

write_command(0x11)  # 睡眠退出
time.sleep_ms(120)

# 内存数据访问控制
# 写入0xC8以启用BGR模式。
write_command(0x36, 0xC0)

# 接口像素格式
write_command(0x3A, 0x05)

# 显示开启
write_command(0x29)

sensor.reset()  # 初始化相机传感器。
sensor.set_pixformat(sensor.RGB565)  # 必须是这个
sensor.set_framesize(sensor.QQVGA2)  # 必须是这个
sensor.skip_frames(time=2000)  # 让新设置生效。
clock = time.clock()  # 跟踪FPS。

while True:
    clock.tick()  # Track elapsed milliseconds between snapshots().
    img = sensor.snapshot()  # 拍照并返回图像。

    write_command(0x2C)  # 写入图像命令...
    write_image(img)

    print(clock.fps())  # 注意:您的 OpenMV Cam 在连接到
    # 计算机时运行速度会减半。断开连接后,FPS 应该会增加。

results matching ""

    No results matching ""