你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F446RE驱动OV5640

[复制链接]
jiguosheng 发布时间:2020-5-3 13:13
之前自己用STM32F446RE做了一个小开发板,搭配OV5640模块做图像采集实验。现将实验过程分享给大家。$ V1 K( M! v- d( A9 C
首先使用STM32CubeMX v5.6搭建底层驱动。主要是使用DCMI接口和UART5,所以主要配置这两个外设。
# j; D  r! D3 r: ?* ?( l$ P 1.png ' w' z' G1 l( C" D
2.png % O9 M- K2 Y# s: i) d/ P8 B5 b
3.png
6 C( u: R) E( }  {, \: P 4.png
3 G) u- _$ F1 k% ^由于OV5640需要一些控制引脚和SCCB(类似于I2C的时序,本例使用IO模拟),所以还需要配置一些额外的IO作为输入/输出口。! j2 C; s: K* Z, K4 \3 e
6.png
4 ~# |" G9 ?) a4 F, U  V将时钟开到最大180MHz
6 ?! z9 V9 }, n. M# W8 F6 D 7.png
6 K  i( J8 N* N! b- J6 DHeap Size和Stack Size都设置为0x1000,然后点击生成工程。
9 |7 Q. C% [' {' I) x. q' j3 O: X& [在生成的工程文件夹下新建OV5640的文件夹,用于存放OV5640的驱动文件。
( |/ _) y6 R# a3 E1 F+ \ 8.png
0 U6 [7 z1 p  Y1 N1 j* d添加头文件。
" `) W" A5 M) w  m! |% W 9.png
# u' ~! I+ ^; s3 t9 U. O下面编写OV5640的驱动。主要是先通过SCCB总线向OV5640发送寄存器配置信息,然后初始化DCMI接口。配置信息厂家一般会提供,所以一般不需要用户自己去写配置。具体内容可以参看附件中的源码。
9 v4 T8 |% g( ^6 s: t( ^# j% F' \. F 10.png
% o2 m7 a/ P9 u. W; Q9 A 11.png
% R* X- B/ D3 j" f8 \ 12.png
( [8 v4 Q3 ]" b9 x1 i. M# X8 T 13.png
1 W9 S5 d2 V/ b' X9 |' Z  a6 S 14.png
+ D4 H7 g  N9 h( s9 u最后在main.c文件中加入如下代码。
+ J1 [6 S# E% H7 E2 s' ^ 15.png 2 k# {$ D/ F, m- y  z  W/ R
16.png % T; Q2 h* o9 }6 _5 ]
17.png & `; U; d" l, D0 {. j* y; h9 y
18.png / E+ W4 }5 ]- N
程序在while循环中调用OV5640_App()程序。在OV5640_App();中先开启DCMI,开始一次拍照,并通过DMA将数据搬运至缓冲区中。当一帧采集完毕后,触发中断,使能标志位,OV5640_App()得以继续运行。在得到一帧数据后,通过从后向前判断非零数据的位置得到有效数据的长度,然后通过UART5发送出去。
" K! V$ W( P1 K实测160X120连续采集发送帧率只有1fps左右,增大分辨率会降低帧率。这和使用串口传输有关。通过增大缓冲区大小、使用UART+DMA以及双缓存的方法均没有明显的提速效果。
8 S  p7 n8 I" ^3 C- |实际效果如下:
1 S5 N. o/ d  O 19.png
  q3 c) Z; N) D; b, E代码:: e. B; Y" W% @8 j
STM32F446RE_OV5640.zip (887.79 KB, 下载次数: 86)
赞 收藏 评论3 发布时间:2020-5-3 13:13

举报

3个回答
李康1202 回答时间:2020-5-5 11:56:45
谢谢分享
g921002 回答时间:2020-5-28 00:07:03
很棒的說明,從cubemx到代碼說明都很清楚。
银河之风 回答时间:2020-11-27 10:32:36
想咨询一下楼主用的串口显示图像的软件是什么?网上没有搜索到

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版