STM32F767 读取ov5640数据通过USB UVC传输数据到PC端显示

        本篇文章完成从ov5640采集数据,到MCU LCD上显示,再用USB UVC传输实现在PC上显示实时视频,给大家提供一个思路。

        具体就是实现从ov5640,通过STM32F767的DCMI接口读取ov5640 RGB565格式数据,然后将数据转成YUV422的yuv2格式,通过USB UVC传输数据到PC。过程并不复杂,主要在代码调试。

效果如下面视频所示。

从上图可以看到,从摄像头实时采集视频数据显示到LCD,再通过USB传到PC,视频效果与LCD上一样,分辨率是160x120。下面具体说下步骤。

1、从OV5640采集数据

        从ov5640上采集数据格式RGB565并显示到LCD上,这些例子很多。采集视频的效果我用的格式是RGB565,分辨率最高800x480,最小160x120,都可以的,是一行一行数据采集的。我放在SDRAM中,在分辨率比较大时,视频有点卡扽。

2、视频数据转换

        USB UVC传输里用的是yuv2,其实就是YUV422采样的packet方式,如下图所示。

3、usb uvc传输数据

        用的是全速传输,协议是USB uvc,这里不细究细节,主要是uvc的配置描述符及发送端点及怎么传输一帧视频。如果USB硬件,驱动及配置描述符正确。下载程序,插上USB线,上电,那么会在PC上生成设备,效果如下

名字是我设备描述符中起的,到这一步,说明usb的配置描述符正确,最后就是传输了,uvc协议会从一帧数据流中读取数据发送出去,PC就可以看到数据。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值