This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5994:将 MSP430FR5994与 OV7670 (具有 FIFO 存储器)连接时出现问题

Guru**** 2378650 points
Other Parts Discussed in Thread: MSP430FR5994
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1466315/msp430fr5994-problems-of-connecting-msp430fr5994-with-ov7670-with-fifo-memory

器件型号:MSP430FR5994

工具与软件:

大家好!

我正在尝试将 MSP430FR5994与 OV7670 (具有 FIFO 存储器)连接、获取图像数据(不用于视频流式传输)并将其显示在 PC 屏幕上(使用 Python 代码)。 我可以成功地从 OV7670的 FIFO 存储器中读取数据、并将其存储到 MSP430FR5994的 FRAM 中。 我还可以通过 MSP430FR5994的 UART 将此数据发送到 PC。 但是,当我想在这幅画上显示图像时,我会得到一个全是乱码的窗口,如下所示:

我还注意到在 PC 上接收到的数据将包括一些奇怪的数据,如"m"、"i"、"~"。 我认为我获得的数据应该是0~f 之间的数字

这是我用于显示映像窗口的 Python 代码:

import serial
import numpy as np
import cv2


SERIAL_PORT = 'COM9'
BAUD_RATE = 115200
IMAGE_WIDTH = 160
IMAGE_HEIGHT = 120
IMAGE_SIZE = IMAGE_WIDTH * IMAGE_HEIGHT

def receive_image():
    with serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=5) as ser:
        print("waiting for data...")
        data = ser.read(IMAGE_SIZE)
        if len(data) == IMAGE_SIZE:
            print("receive successfully, data length:", len(data))
            print(data)
            return np.frombuffer(data, dtype=np.uint8).reshape((IMAGE_HEIGHT, IMAGE_WIDTH))
        else:
            print("receive failed, data length:", len(data))
            return None

image = receive_image()
if image is not None:
    cv2.imshow("OV7670 Image", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

我使用的图像格式是 RGB565的160x120。

我想知道如何解决此问题? 是由某些图像编码/解码问题引起的吗?

谢谢!

YaTong

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 YaTong:

    您检查过数据流键入吗? 有时、预期的格式与您想要发送的格式不同。 例如、如果您需要十六进制格式、但 PC 需要 ASCII、它会将给定的十六进制转换为 ASCII、并显示该值。

    您能返回并仅将1个字符从 MSP430发送到 PC 吗、看看接收到的值是否与您发送的值相同。

    此致、
    Luke

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    RGB565听起来像是一个16位基准面(我怀疑是大端字节序)、但我看不到任何从您正在处理的字节重构这些字的东西。

    您可以尝试从8位灰度之类的开始、 直到确定所有其他部分都正确无误。