所需硬件:

1.stm32 103ZET6核心板,没有lcd(调试摄像头一定要买一个lcd,太方便了,都是泪);

2.OV7670带FIFO淘宝一搜一大把最常见的那种;

驱动代码:参考正点原子官方例程 实验35摄像头实验;也可以使用淘宝卖家提供的例程,ov7670寄存器配置有点麻烦,也懒得研究,刚开始调试的时候不出图像,换了几个版本的寄存器配置最后还是换回去用了正点原子的,毕竟大厂还是有保障的;没有lcd的话会调试到你怀疑人生,不知道是上位机写的不好用还是驱动没写好,所以最好还是买一块lcd进行调试;

初始化摄像头的时候如果错误,红灯会亮起一直初始化完成,也可以接串口看返回的错误代码;当发送图片给的时候绿灯会亮起,表示正在发送,发送完成绿灯灭;

我是直接把要发送到屏幕的数据直接发送到上位机,上位机有协议的要加上协议,数据头和尾巴;还有要区分32库函数printf和USART_SendData()的区别,区分发送的数据是字符还是十六进制原始数据,数据长度要计算清楚;我才采集的是320*240 RGB565的图像,得到的是16位数据,串口一次只能发送8位,所以分成两个字节发送,也就是发送的图像数据量是320*240*2,一定要区分发送字节的高位低位,很重要很重要很重要,上位机RGB565转RGB888要用得到,直接决定显示的成败;

但是用printf发送,如果用我这种方式发送,发送的是字符,prinft("%04X", color);如果color=0xFEA5,串口收到的是'F' 'E' 'A' '5',在上位机上还有一步转化操作,所以发送的数据量就是320*240*2*2(至于我为什么这么写,完全是为了兼容我的上位机,上位机是参考的别人代码,懒得大改了,c#不是很熟练,就在MCU上动手脚了),这个地方也会有一个问题,printf()发送速度会比USART_SendData()速度慢,可能会导致上位机显示的图像有线条。线条问题最后是通过提高波特率解决的,用的200000;

void camera_refresh1(void)//更新LCD显示
{u32 w,h;u16 color;if(ov_sta)//有帧中断更新?{      OV7670_RRST=0;             //开始复位读指针 OV7670_RCK_L;OV7670_RCK_H;OV7670_RCK_L;OV7670_RRST=1;                //复位读指针结束 OV7670_RCK_H; printf("data:\n");    for(w=0;w<240;w++)//数据开始(从上往下,从左往右)//width:输出图像宽度,<=240//height:输出图像高度,<=320{printf("L");//列有效for(h=0;h < 320;h++)//一列{OV7670_RCK_L;color=GPIOF->IDR&0XFF; //读数据OV7670_RCK_H; color<<=8; OV7670_RCK_L;color|=GPIOF->IDR&0XFF;   //读数据OV7670_RCK_H;printf("%04X", color);// printf发送的是字符串//delay_us(50);}printf("\n");}ov_sta=0;                    //清零帧中断标记ov_frame++; }
}

上位机开发语言:C#,参考连接https://blog.csdn.net/zyxhangiian123456789/article/details/79163959,加了图像采集和测试按钮,改进了保存图片的方式;

测试按钮是测试上位机和单片机死否通信正常,点击此按钮会给单片机发送一组指令,让单片机绿灯闪烁两次,代表通信正常;

采集按钮是发送指令让单片机拍照上传,点击后绿灯亮起,代表正在发送数据,绿灯灭后代表数据发送完毕,如果上位机没有显示图像则代表发送失败;

保存按钮改进了原作者只能覆盖保存的功能,点击保存会连续保存不会覆盖上一张保存的照片;

数据发送高位地位和原作者有区别;

有些修改的地方:

上位机github地址:https://github.com/WW-0/OV7670-PC/upload/master

32+上位机代码下载:https://download.csdn.net/download/qq_34824576/12407112

上位机参考连接:https://blog.csdn.net/zyxhangiian123456789/article/details/79163959

https://github.com/jack13163/OV7670

stm32驱动 ov7670发送到串口上位机显示图像相关推荐

  1. STM32开发 -- Visual Studio C++编写串口上位机

    打算使用Visual Studio编写一个串口上位机程序,然后进行测试. 原来的上位机各种BUG,受不了了.自己写一个得了. 一.创建 MFC 工程 选择MFC应用: 应用程序类型选择 基于对话框: ...

  2. STM32F407获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  3. STM32驱动OV7670(无FIFO)相关问题的解决

    STM32驱动OV7670(无FIFO)相关问题的解决 文章目录 STM32驱动OV7670(无FIFO)相关问题的解决 前言 一.OV7670大体介绍与需要关注的点 二.遇到的问题及解决 1.引脚冲 ...

  4. STM32H750获取OV7670摄像头图像及上位机解码(一维码二维码)

    STM32H750获取OV7670摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32H750对30万像素OV7670摄像头进行图像捕获,并通过串口将数据 ...

  5. qt connect函数_Qt 串口上位机开发Rice 上位机 学习开发

    前几天分享了一个使用C#开发的串口上位机,那么今天教你如何100行QT代码实现一个串口上位机.如果你学习过C++,那么使用QT开发软件,就不是什么大问题了,QT很多时候使用在linux上.所以使用QT ...

  6. STM32+ESP8266连接电脑Qt网络上位机——QT篇

    本文简单介绍下手写网络调试器并连接ESP8266模块 上篇:  STM32+ESP8266连接电脑Qt网络上位机--准备工作 目录 一.部分Qt代码及实现过程 二.实现过程--使用ESP8266连接上 ...

  7. stm32单片机 北斗GPS 定位 vb上位机显示。 蓝牙主从级通信

    stm32单片机 北斗GPS 定位 vb上位机显示. 蓝牙主从级通信. 主单片机获取GPS北斗模块定位信息后,通过蓝牙发送给从模块. 从蓝牙模块,从模块通过串口讲定位信息发送给vb上位机. 上位机实时 ...

  8. 【串口助手】Python从零开始制作温湿度串口上位机

    文章目录 1. 项目介绍 2. 功能简介 3. 开发过程 3.1 准备工作 3.2 编写串口上位机界面 3.3 功能实现 3.3.1 基本功能 3.3.2 整活 3.4 打包 exe 可执行文件 1. ...

  9. 2.1-关于串口上位机编程你需掌握的背景知识

    一.串行通信简介 定义:串行通信是一种使用串行数据流来传送数据的通信协议,相区别于"并行通信":串行通信的特点是使用一根电线完成发送数据,同时使用另一根电线完成接受数据. 上面提到 ...

最新文章

  1. How to create a site with AJAX enabled in MVC framework.
  2. WordCount程序
  3. Ubuntu 16.04 安装wine
  4. Java扩展机制可加载所有JAR
  5. TS Annotation
  6. vim显示行号_使用 vim 不得不看的 2 个 tips
  7. color ui的使用
  8. 关于SoUI界面库处理从WM_LBUTTONUP到按钮事件的消息路由过程分析
  9. 弘辽科技:淘宝开店类别怎么选择?淘宝开店如何选类目?
  10. Vue input 限制只能输入正整数、数字、英文、两个小数
  11. ICP许可证的作用是什么?ICP许可证可以转让吗?
  12. PHPmywind 调用方法
  13. 面向对象与面向过程的理解
  14. Domino版本、维护版本和补丁程序概念
  15. 2011-09-06 [FCKEditor插件移植至CKEditor(plus_format_fck.js)]
  16. 免费拿走Vivado2017.4安装包及其license(附带安装教程)
  17. php access violation,Access Violation
  18. 一套出完被喷爆的noip提高组+的题目
  19. Only老K说-spa项目实现jwt验证码
  20. USB管理精灵系统 助你快捷管理外来U盘

热门文章

  1. 微软警告:Java虚拟机发现2个重要安全漏洞(转)
  2. Java开发人员如何构建自己的技术体系
  3. 欧洲共同语言框架的b2-c1,德语语法A1-A2-B1-B2-C1
  4. 【树莓派】树莓派开放WiFi热点
  5. 基于OpenCV的火焰检测(三)——HSI颜色判据
  6. linux中FT4232H设备驱动添加,USB转4串口芯片FT4232HL,FT4232HQ
  7. 2021年PMP考试考场公布
  8. Centos7安装MySQL5.7--精简详细版
  9. android HOME、back(按钮、事件)截取获得,综合解决方案和分析,包含android4.0系统
  10. Office 2007 能不能和 Office 2003 安装在一起?