OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 1006|回复: 17

ov5640改为ov7740摄像头

[复制链接]

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
发表于 2018-3-30 13:40:04 | 显示全部楼层 |阅读模式
10金钱
5640摄像头用的原子哥家的,很方便的就实现了,现在想把摄像头改为7740驱动,也经历了一些困难,有几个问题解决不了,想问问大神,我在5640摄像头实验的基础之上修改7740驱动,sccb应该欧式通用的,我没有去修改,dcmi这里我也没有改,因为需要捕获到的数据还是dma给RGB屏显示,一开始显调试sccb是否能通,按照5640的写法不同,肯定也够呛,因为型号都不一样,后来看了手册,在百度了一下,按照读写地址,去读写测试,最后成功通讯,初始化也ok,但是现在问题是,在调试的时候看,会一直捕捉到帧中断,一直会进入void DCMI_IRQHandler(void)
{
    HAL_DCMI_IRQHandler(&DCMI_Handler);
}
void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
{
        jpeg_data_process();
        LED1_Toggle;
        ov_frame++;
    __HAL_DCMI_ENABLE_IT(&DCMI_Handler,DCMI_IT_FRAME);
}
这两个函数之中,但在屏幕上没有显示,只有进入了DMA的数据流中断函数,才会调用回调函数,才会刷屏,我现在不知道为什么进不去下面这个中断函数,也不能确认我的摄像头是否捕获到有效的数据,因为只有显示在了屏幕上,才能看出来,求助原子哥和大神们解答,感激不尽
void (*dcmi_rx_callback)(void);

void DMA2_Stream1_IRQHandler(void)
{
    if(__HAL_DMA_GET_FLAG(&DMADMCI_Handler,DMA_FLAG_TCIF1_5)!=RESET)
    {
        __HAL_DMA_CLEAR_FLAG(&DMADMCI_Handler,DMA_FLAG_TCIF1_5);
        dcmi_rx_callback();       
    }
}

最佳答案

查看完整内容[请看2#楼]

经历了一番挫折与煎熬,终于调出来了,然而接下来更是大把的任务去处理,好了,就这样吧,结贴,噢忘记说下心得,7740这个传感器30万像素,只支持输出yuv格式和raw rgb ,然而我用的是rgb屏幕,所以只能把输出转换成rgb565再去显示,信号传递是通过dma,双缓冲到行数组中,在缓冲完将其转换成rgb565即可,这里也是关键,一定要处理的快,否则下个信号过来这个还没转换完事就是丢行,最终导致图像不是你想要的大小,而是被压扁了, ...
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-3-30 13:40:05 | 显示全部楼层
经历了一番挫折与煎熬,终于调出来了,然而接下来更是大把的任务去处理,好了,就这样吧,结贴,噢忘记说下心得,7740这个传感器30万像素,只支持输出yuv格式和raw rgb ,然而我用的是rgb屏幕,所以只能把输出转换成rgb565再去显示,信号传递是通过dma,双缓冲到行数组中,在缓冲完将其转换成rgb565即可,这里也是关键,一定要处理的快,否则下个信号过来这个还没转换完事就是丢行,最终导致图像不是你想要的大小,而是被压扁了,所以一定要处理的快才行,或者降低时钟,8M的能明显看出卡帧,12m的没试验没有晶振,现在用16M的,再加上优化函数,勉强处理好,顺便吐槽下,也是因为我自己能力太差,没有找到HAL库的分频时钟函数,我想将PA8输出的时钟分频,然而并未成功没有找到函数,所以只能硬着头皮去优化处理函数,还好解决了,结贴
QQ截图20180417104942.png
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-3-30 14:28:33 | 显示全部楼层
DMA中断进不去啊,DCMI的可以,
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-3-30 14:29:37 | 显示全部楼层
@正点原子
原子哥,帮帮忙咯
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-3-30 15:58:53 | 显示全部楼层
正点原子公众号
如题,都是高电平出发,在示波器观测都有上升沿啊,而且行的一组数据比帧的多,为什么就帧终端能进去,行中断却进不去呢,求解,现在真是不知所措了
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-3-30 16:01:33 | 显示全部楼层
奇怪的是,我用镊子,短接HSYNC,也就是HREF这个引脚,到3.3,就进一下中断,而自己却进不去中断,放图
F2A131E6375ABB882E5F9A70DC4AFDAF.png
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

500

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
129906
金钱
129906
注册时间
2010-12-1
在线时间
1169 小时
发表于 2018-3-31 02:00:40 | 显示全部楼层
VSYNC和HREF,都有波形么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-3-31 23:25:28 | 显示全部楼层
正点原子 发表于 2018-3-31 02:00
VSYNC和HREF,都有波形么?

都有波形,这个图的波形就是HREF的波形,按理说高电平触发应该进入中断了,可就是进不去
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

500

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
129906
金钱
129906
注册时间
2010-12-1
在线时间
1169 小时
发表于 2018-4-1 00:54:27 | 显示全部楼层
kbq1950361006 发表于 2018-3-31 23:25
都有波形,这个图的波形就是HREF的波形,按理说高电平触发应该进入中断了,可就是进不去

是的,只要这两个有,就可以进入中断
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-4-2 13:55:53 | 显示全部楼层
顶起来帖子,我现在就想先让摄像头在屏幕上显示就行了,别的参数在慢慢调试,可问题还是卡在这里,进不去中断,从而不调用回调函数屏幕显示,也看不见数据是否正确,因为每个io数据脚都有波形,感觉有数据,就是读不到,憋了好几天了有点郁闷了都,求救,不知哪位大神能给点建议,小弟感激不尽。
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-4-4 11:51:56 | 显示全部楼层
这两天无头的看手册,调试,虽然出现了乱七八糟的雪花,能设置屏幕显示大小区域,但是没有生成图像,现在彩条模式测试一直也没成功过,好炸
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-4-12 17:09:45 | 显示全部楼层
yuv422格式输出,现在查怎么快速的转成rgb565格式,显示在屏幕上
QQ图片20180412170814.jpg
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

3

主题

25

帖子

1

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2016-2-27
在线时间
20 小时
发表于 2018-4-19 08:04:30 | 显示全部楼层
kbq1950361006 发表于 2018-4-12 17:09
yuv422格式输出,现在查怎么快速的转成rgb565格式,显示在屏幕上

颜色扭曲但图像轮廓在的情况,查一下自己Byte order搞对没有
http://www.openedv.com/forum.php ... &extra=page%3D2
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-4-19 11:35:04 | 显示全部楼层
momoxinduo 发表于 2018-4-19 08:04
颜色扭曲但图像轮廓在的情况,查一下自己Byte order搞对没有
http://www.openedv.com/forum.php?mod=vie ...

现在问题已经解决啦,谢谢大腿
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

11

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
168
注册时间
2016-9-7
在线时间
47 小时
发表于 2018-6-21 22:18:15 | 显示全部楼层
你这个最后怎么好的,进中断,我的也是有波形,不能进中断,短接一下就进去
回复

使用道具 举报

  离线 

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-3-21
在线时间
28 小时
发表于 2018-7-12 14:58:20 | 显示全部楼层
楼主源码可以提供一下么,我也在研究407上的7725
回复

使用道具 举报

  离线 

41

主题

390

帖子

0

精华

高级会员

Rank: 4

积分
995
金钱
995
注册时间
2017-8-7
在线时间
147 小时
 楼主| 发表于 2018-7-12 15:08:46 | 显示全部楼层
触电丶 发表于 2018-7-12 14:58
楼主源码可以提供一下么,我也在研究407上的7725

源码是不可能的了,因为项目快要交工,原理给你说一下吧,摄像头模组,都是配置好寄存器,就可输出正确的数据,7725没用过,不过都差不多,你问问你买模块的厂家,看看能不能提供给你正确的配置表什么的,只要上面的iic通信没问题,寄存器配置正确,输出的数据你在处理正确,就ok了
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

  离线 

9

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2016-3-21
在线时间
28 小时
发表于 2018-7-12 15:11:07 | 显示全部楼层
kbq1950361006 发表于 2018-7-12 15:08
源码是不可能的了,因为项目快要交工,原理给你说一下吧,摄像头模组,都是配置好寄存器,就可输出正确的 ...

好的  谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




关闭

"原子哥”推荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-7-21 21:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */