资深版主
- 积分
- 14287
- 金钱
- 14287
- 注册时间
- 2018-8-3
- 在线时间
- 1147 小时
|
本帖最后由 翼行园子 于 2019-9-28 18:46 编辑
/*W601驱动OV7725实时显示到液晶屏上*/
图像显示在板载的1.3寸(240*240)屏幕
硬件要求:
W601板子,OV7725,若干杜邦线。
硬件连接:
OV7725 W601
/*信号线及电源线*/
GND GND
VCC 3.3V
SCL PA11
SDA PB28
WRST PA12
RRST PB13
OE PB4
RCLK PB17
WEN PB31
VSYNC PB30
/*数据线*/
D0 PB14
D1 PB10
D2 PB23
D3 PB12
D4 PB11
D5 PB25
D6 PB24
D7 PB18
实验现象如图:有时候出现花屏是因为摄像头用杜邦线接的,所以有点不稳,数据传输有点干扰 花屏是正常现象 减少
花屏就是尽量选择短的杜邦线和把线绑一起固定好,我自己画了个转接板 转接板的效果就比较好了,效果如图:
一、杜邦线接效果:
二、自己画的转接板效果如图:
实测帧率大概是一秒1帧左右,如图:
本实验是用的帧同步信号脚 触发外部中断来触发帧中断,在7725的数据手册时序图中,VSYNC上升沿表示一帧数据传输完成,程序中我们可以根据
VSYNC的上升沿来判断一帧图像数据传输完成,所以当我们的捕获到上升沿的时候 就触发帧中断。
中断处理部分流程:每当帧中断到来后,先判断 ov_sta 的值是否为 0,如果是 0,说明可
以往 FIFO 里面写入数据,执行复位 FIFO 写指针,并允许 FIFO 写入,此时, AL422B 将从地
址 0 开始,存储新一帧的图像数据。然后设置 ov_sta++即可,标记新的一帧数据正在存储中。
如果 ov_sta 不为 0,说明之前存储在 FIFO 里面的一帧数据还未被读取过,直接禁止 FIFO 写入,
等待 MCU 读取 FIFO 数据,以免数据覆盖。
主函数主要注意的是这个函数OV7725_camera_refresh,该函数用于读取摄像头模块自
带FIFO里面的数据,并显示在 LCD 上面
|
|