资深版主
- 积分
- 14287
- 金钱
- 14287
- 注册时间
- 2018-8-3
- 在线时间
- 1147 小时
|
本帖最后由 翼行园子 于 2019-9-28 18:46 编辑
本实验是使用潘多拉L475 驱动OV7725,并在板载的1.3寸(240*240)屏幕实时显示图像
硬件要求:
潘多拉板子,OV7725,若干杜邦线。
硬件连接:
OV7725 潘多拉
/*信号线及电源线*/
GND GND
VCC 3.3V
SCL PB8
SDA PC7
WRST PB9
RRST PA8
OE PC6
RCLK PB12
WEN PB10
VSYNC PB11
/*数据线*/
D0 PD15
D1 PD14
D2 PD13
D3 PD12
D4 PC2
D5 PB15
D6 PB14
D7 PB13
实验现象如图:有时候出现花屏是因为摄像头用杜邦线接的,所以有点不稳,数据传输有点干扰 花屏是正常现象 减少
花屏就是尽量选择短的杜邦线和把线绑一起固定好,后面再加一个自己画的转接板的效果图,可以比较下。转接板的效果会好很多,后面再B站在弄个视频,有兴趣的到时候可以看看比较下
效果如图:
(杜邦线接7725有时候会经常花屏)
(用自己画的转接板效果图):
实测帧率大概是一秒4帧左右,如图:
本实验是用的输入捕获来捕捉帧同步信号的,在7725的数据手册时序图中,VSYNC上升沿表示一帧数据传输完成,程序中我们可以根据
VSYNC的上升沿来判断一帧图像数据传输完成,所以当我们的捕获到上升沿的时候 就触发帧中断。
中断处理部分流程:每当帧中断到来后,先判断 ov_sta 的值是否为 0,如果是 0,说明可
以往 FIFO 里面写入数据,执行复位 FIFO 写指针,并允许 FIFO 写入,此时, AL422B 将从地
址 0 开始,存储新一帧的图像数据。然后设置 ov_sta++即可,标记新的一帧数据正在存储中。
如果 ov_sta 不为 0,说明之前存储在 FIFO 里面的一帧数据还未被读取过,直接禁止 FIFO 写入,
等待 MCU 读取 FIFO 数据,以免数据覆盖。- void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)//捕获中断发生时执行 帧中断操作
- {
- if(ov_sta==0)
- {
- OV7725_WRST(0); //复位写指针
- OV7725_WRST(1);
- OV7725_WREN(1); //允许写入FIFO
- ov_sta++; //帧中断加1
- }else OV7725_WREN(0);//禁止写入FIFO
- }
复制代码
主函数主要注意的是这个函数OV7725_camera_refresh,该函数用于读取摄像头模块自
带FIFO里面的数据,并显示在 LCD 上面- void OV7725_camera_refresh(void)
- {
- u32 i,j;
- //u32 sta,t,cishu=0;
- u16 color;
- if(ov_sta)//有帧中断更新
- {
-
- LCD_Address_Set(0, 0, OV7725_WINDOW_WIDTH, OV7725_WINDOW_HEIGHT); //设置数据显示区域
- OV7725_RRST(0); //开始复位读指针
- OV7725_RCK_L;
- OV7725_RCK_H;
- OV7725_RCK_L;
- OV7725_RRST(1); //复位读指针结束
- OV7725_RCK_H;
- for(i=0;i<OV7725_WINDOW_HEIGHT;i++)
- {
- for(j=0;j<OV7725_WINDOW_WIDTH;j++)
- {
-
- OV7725_RCK_L;
- color=LCD_7725DATA()&0XFF; //读数据 *(TLS_REG *)reg
- OV7725_RCK_H;
- color<<=8;
- OV7725_RCK_L;
- color|=LCD_7725DATA()&0XFF; //读数据
- OV7725_RCK_H;
- lcd_7725buf[j * 2] = color >> 8; //(2)(3)高八位
- lcd_7725buf[j * 2 + 1] = color; //(2)(3)低八位
- }
- LCD_DC(1); //(2)
- LCD_SPI_Send(lcd_7725buf, LCD_7725Buf_Size); //LCD底层SPI发送数据函数(2)
- }
- ov_sta=0; //清零帧中断标记
- ov_frame++;
- }
- }
复制代码 上传B站实验视频,有兴趣可以看下:https://www.bilibili.com/video/av69245285
|
|