ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
返回列表 发新帖本帖赏金 3.00元(功能说明)

[STM32F4] 【f446RE开发板试用】教你用HAL库DCMI捕捉OV2640

[复制链接]
楼主: colin2135
 楼主 | 2016-3-8 10:30 | 显示全部楼层
lkdxxq 发表于 2016-3-8 10:05
楼主能加个qq指导下吗?1796480563,楼主好人谢谢。

有什么问题呢?百度云盘上面已经有源码,可以直接参考。
| 2016-10-4 23:15 | 显示全部楼层
楼主你好,我想请教一下DCMI的初始化代码里面,你把       
  1.         //DCMI_hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE;
复制代码

这一句注释掉了是为什么呢?是不是和用 MCO1,输出16M  XCLK给OV2640 有关呀
 楼主 | 2016-10-5 09:34 | 显示全部楼层
ArthurRen 发表于 2016-10-4 23:15
楼主你好,我想请教一下DCMI的初始化代码里面,你把       

这一句注释掉了是为什么呢?是不是和用 MCO1,输出16 ...

不是的, 这里是DCMI的初始化,跟MCO1没关系。
至于为什么把这一句注释掉,捕捉JPEG只能用硬件同步,所以注释掉了还是使用硬件同步,但为了谨慎,这里不应该加上注释,我当时加上注释可能是手误。

DCMI的同步分成两种,内嵌码和硬件的,在参考手册上面有写,自己去翻看看,在DCMI的章节。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
| 2016-10-5 19:53 | 显示全部楼层
colin2135 发表于 2016-10-5 09:34
不是的, 这里是DCMI的初始化,跟MCO1没关系。
至于为什么把这一句注释掉,捕捉JPEG只能用硬件同步,所以 ...

好的 谢谢楼主
| 2016-10-5 21:28 | 显示全部楼层
本帖最后由 ArthurRen 于 2016-10-5 21:38 编辑

楼主不好意思哈 我还有点问题
我这边用的stm32F426Idiscovery移植的你的程序
  1.   while (1)
  2.   {
  3.   /* USER CODE END WHILE */

  4.   /* USER CODE BEGIN 3 */
  5.                 if(Buttons_GetState())
  6.                 {
  7.                         HAL_Delay(1);
  8.                         //printf("PHOTOING\r\n");
  9.                         while(Buttons_GetState());        
  10.                         __HAL_DCMI_ENABLE_IT(&hdcmi, DCMI_IT_FRAME);   
  11.                         while(HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_SNAPSHOT,(uint32_t)JpegBuffer, pictureBufferLength)!=HAL_OK);
  12.                         //printf("PHOTOING OK\r\n");
  13.                 }
  14.                 if(getPicture==1)
  15.                 {
  16.                         //printf("Start Transmition\r\n");
  17.                         getPicture=0;
  18.                         printf("%s",JpegBuffer);
  19.                 }
  20.   }
复制代码


硬件接线上面应该是没有什么问题的,我用另外的一个STD库的程序能跑起来。

但是我移植楼主你的程序,一直没办法进入
  1. void HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi)
复制代码

这个函数。

我对楼主你的程序理解是这样的:
1.接受到拍照的命令
2.开启FRAM中断
3.开启DMCI到DMA的传输
4.接收到图像触发中断开始串口传输图像
 楼主 | 2016-10-5 22:22 | 显示全部楼层
ArthurRen 发表于 2016-10-5 21:28
楼主不好意思哈 我还有点问题
我这边用的stm32F426Idiscovery移植的你的程序

能读到摄像头的ID了吗?

HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi) 这是帧完成中断。

你可以在DCMI中断或者DMA中断回调里面看看哪里出错了,是否进入这两个中断了。多用DEBUG功能找找问题。
| 2016-10-5 22:51 | 显示全部楼层
colin2135 发表于 2016-10-5 22:22
能读到摄像头的ID了吗?

HAL_DCMI_FrameEventCallback(DCMI_HandleTypeDef *hdcmi) 这是帧完成中断。

摄像头ID可以读到
现在肯定是不能进入DCMI的中断回调函数
DMA中断回掉函数我没找到
| 2016-11-30 14:25 | 显示全部楼层
真实用,在弄Mbed OS
 楼主 | 2016-11-30 14:40 | 显示全部楼层
zzz电子 发表于 2016-11-30 14:25
真实用,在弄Mbed OS

mbed os有提供camera的API吗?好像没有,需要自己写。
| 2017-1-18 23:47 | 显示全部楼层
好, 参考一下, 正在调摄像头
 楼主 | 2017-1-19 09:56 | 显示全部楼层
zhanzr21 发表于 2017-1-18 23:47
好, 参考一下, 正在调摄像头

也是用2640吗
| 2017-1-19 16:05 | 显示全部楼层
是啊 也是2640
| 2017-1-19 18:08 | 显示全部楼层
还在搞OV7670 为的是比较效果 性能上的差别
| 2017-1-19 21:40 | 显示全部楼层
这篇讲的不错
| 2017-6-16 00:38 | 显示全部楼层
感谢下楼主,关于cubemx和hal库配置dcmi的文章实在是太少了,看到这篇很是感动
| 2017-6-16 09:01 | 显示全部楼层
谢谢分享,有时间也搞一搞摄像头
| 2017-6-23 19:39 | 显示全部楼层
colin2135 发表于 2015-10-9 15:02
http://pan.baidu.com/s/1gd6lh9x 源代码在网盘里,欢迎下载。

楼主,请问你的源代码中cubemx 怎么配的啊?里面都是空的?能否把完整文件,发我研读一下,必有重谢!!!
| 2017-6-23 19:40 | 显示全部楼层
colin2135 发表于 2015-10-9 15:02
http://pan.baidu.com/s/1gd6lh9x 源代码在网盘里,欢迎下载。

http://bbs.21ic.com/forum.php?mo ... =1156856&page=1
| 2017-6-23 19:41 | 显示全部楼层
楼主,没看到你的cubemx中的配置内容啊?能否把你配置完整的源文件,发我研读一下,万分感谢,必有重谢!
 楼主 | 2017-6-25 22:00 | 显示全部楼层
电气章陈勇 发表于 2017-6-23 19:41
楼主,没看到你的cubemx中的配置内容啊?能否把你配置完整的源文件,发我研读一下,万分感谢,必有重谢! ...

hello,我的cubeMX只是用来生成空的project,然后根据自己要使用的外设再从库里添加文件到工程里面。所以cubeMX配置里面是空的,当然使用CUBEMX直接生成DCMI的初始化代码也是可以的,你可以根据我的代码,再自己去生成。有问题再问吧。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

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