注意,未成功!!!
工程链接:
https://wwvs.lanpv.com/b05eur3je
密码:91cm
参考资料
STM32F103C8T6+无FIFO的OV7670的输出测试图像实例代码-物联沃-IOTWORD物联网
【单片机开发】无FIFO的OV7670模组在STM32F1平台上的应用_只有dcmi才可以驱动无fifo的ov7670-CSDN博客
设备要求:
两块STM32F103系列芯片,2.8寸9341驱动的LCD屏,不带FIFO的OV7670x1,杜邦线若干
我使用的是一块RCT6,一块C8T6
接线:
OV7670:
与RCT6
VCC-3V3
GND-GND
SCL-PB10
SDA-PB11
VS-PB12
HS-PB13
PLK-PB14
D0~D7-PA0~PA7
RET-3V3
PWDN-GND
与C8T6
XLK-PA8
LCD屏
VCC-3.3V
GND-GND
CS-PB6
RST-PB7
DC-PB8
SDI(MISO)-PB5
SCK-PB9
LED-3V3
SDO(MISO)-PB4
文件介绍:
第一个文件:带RCT6软SPI字样,是下载到RCT6内部的,包括了OV7670与LCD屏的驱动程序
第二个文件:MCO,是下载到C8T6中的,作用是提供一个稳定8MHZ时钟
第三个文件是找商家要的资料
不成功的实验
这次实验是不成功的,摄像头不能输出收集到的图像到LCD屏,而是输出杂乱的图像
如上图所示,我考虑过是否是摄像头损坏的问题,于是又去买了一个,但是那一个甚至无法输出图像而是完全的白屏,这些问题我现在没有能力也没有时间去解决。
可能的问题:
如何将RCT6代码移植到C8T6?
因为同为F103系列,所以只需在魔术棒中的Device选项里将RCT6改为C8T6即可。
可以更改引脚定义吗?
必须根据引脚功能确定,如MISO可以是PB4但不能是PB5,6,7;以及MCO只有PA8一个,不可更改。
为什么图像显示是这样的?
OV7670是全彩的,也即2字节描述一个像素,OV7670共有480*640像素,因为LCD屏为320×240像素,所以显示一张图片需要307200字节,一个char占用2字节,所以如果想要完整存储一帧LCD图像需要一个大小为153600的char数组,但是这超过了F103可以使用的运存空间,我尝试之后发现它的1/4也即38400不会报错,所以我选择一次刷新1/4的屏幕;但是这是有很大问题的,我不知道OV7670传入的图像是按列传输还是按行传输。
写在最后
首先,当你想要尝试用F103系列开发板驱动不带FIFO的OV7670时,我必须劝你三思而行,这方面的资料是不多的,不带fifo都已经是少见,f103更是难上加难,以及市面上大部分厂家不带FIFO的OV7670摄像头并没有质保,你无法判断是自己的错还是产品的错;虽然不带FIFO的OV7670与STM32均诞生多年,但网络上似乎仍然没有一个科学系统的教程来指导开发,希望在不久的将来这一漏洞能被填补,即使这样并不具备实用价值,但至少能给不愿意购买动辄50元的带FIFOOV7670的人一种选择。