开发环境:ubuntu12.04 内核版本:itop4412_kernel_3.0
OV5640模块迅为有提供专用的硬件接口,只需将模块按方向正确插入即可,内核也有对应的驱动,相关配置见《iTOP-4412-驱动-配置200W摄像头驱动》。OV5640模块迅为也有提供专门的测试代码,使用的是C++实现,但是它为兼容更多的摄像头模块,有很多对该模块冗余的代码,造成代码的可读性和可用性不太理想。所以,将其中非OV5640模块不需要的东西删除掉了。
v4l2为linux下视频设备程序提供了一套接口规范。V4L2的工作流程为:打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法(缓冲 区管理)-> 循环获取数据-> 关闭设备。具体可参考https://www.cnblogs.com/silence-hust/p/4464291.html这篇博客,写的也比较详细。
具体代码已上传到github上,https://github.com/ccldmf/iTop4412.git,里面分别有两个文件夹,一个是camera,另一个是camera-for-c,分别对应C++实现和C实现,大家根据需求进行下载吧。