基于stm32f407的无线视屏传输项目
材料:STM32F407两块 NRF24L01两个,OV2640摄像头一个,TFTLCD4.3寸显示屏一个,IS62WV51216(sram)一个。
注:一开始在无线传输模块的选材上有串口wifiESP8266和NRF24L01两个,先选择了ESP8266进行测试,这个wifi模块传输距离,面对阻隔物体的传输比NRF24L01强,但是经过深入学习总结,这个模块传输速度很慢,因为限制在了串口的速率上,比如115200的波特率计算下来10kb/s左右的传输速率,而NRF24L01则是115kb/s的传输速率,所以最后放弃了ESP8266.局限于各方面因素只能选择NRF24L01,如果有后生的话,有能力的话,建议选择sdio接口的WIFI模块。这个模块是我在正点原子论坛上了解到的,速度很块。
上图:
视频链接:http://v.youku.com/v_show/id_XMjUxNzI0MDM3Mg==.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0
自己在这个项目中的思路:
1.先将摄像头数据过去回来打印出来,在遮挡摄像头等变化的时候看某一个位置点的数据是否有变化。
2.将获取回来的摄像头数据按照lcd屏的写入数据方式写进去,调试图像和摄像头配置
3.将NRF24L01通信的8位数据传输方式改为16位数据传输方式,并且加入视频传输开始和结束的标志。
4.(装配)将摄像头显示和无限通信结合在一起,调试程序运行的bug等
项目中的技术运用:
1.ov2640的摄像头数据通过DCMI接口获取并配置摄像头参数。
2.DCMI获取到的摄像头数据通过DMA传输到一个很大数组中。
3.单凭stm32f407的内置内存并不够,再通过FSMC内存控制器来添加外部sram(1M) fsmc片选3
4.通过SPI对NRF24L01j进行配置和读写数据
5.通过FSMC对LCD进行控制,这里是fsmc片选4
遇到的问题以及解决方法:
1.通过数组将摄像头数据用显示屏显示出来会花屏
解决方法:因为DMA速度比较快,而外部SRAM读写速度比较慢,所以就导致数组的读取跟不上DMA的速度,然后我通过大量实验摄像头窗口参数和显示屏用到的大小参数,找到可以显示真实图像不花屏的参数匹配值:240*240比较理想,最终还是通过外部sram能够级到的DMA的一个值。
2.预计视频信息传输是不到一秒一帧,但实际两到三秒
思考:因为NRF24L01大概是128kb/s,我要传输的115kb左右的数据,所以理论上一秒钟就够了,但是实际总是残酷的,SPI读写速度才37.5MHZ最大,如果改成DMA传输的SPI通道,收益不高,也就快一秒左右,并且要用到DMA和SPI的双重读写上的新函数,这个时序没有官方说明时序等注意的地方还是不太好做的一件事情。
3.视频在传输的时候会花,花的还一塌糊涂
解决方法:发现这个问题后,我还以为是自己视频的开头结尾没有处理好,以及SRAM和lcd在FSMC片选上的冲突,最后一一排除,排出的方法就是在单独的SRAM写数据和LCD显示上尝试。最终发现是自己将接收端的NRF24L01碰到了盒子上,有阻隔了(有点坑,哈哈)最后放在一块后效果还是可以的。
总结:程序其实也没什么,我一会放在下面,有时候还会有一点花屏,所以说,传输模块一定要选择好,建议可以尝试sdio接口的wifi,如果做出来可以一起分享
代码地址:http://download.csdn.net/detail/zhaoyuaiweide/9757743
基于stm32f407的无线视屏传输项目相关推荐
- 显示已连接启动传屏服务器,基于树莓派的无线传屏系统的设计与实现
陈涛 陈辉金 摘要:无线传屏技术拟在无线的环境中,将客户端的屏幕信息,通过无线网络传输至服务器计算机上.相比与传统的视频共享或视频同步,无线传屏技术的优势为:所需的电缆少.终端可以随意移动,可提供更加 ...
- 简单实现基于 STM32F407+ESP8266+RFID 的物联网小项目
BusChargeSystem-IOT 项目介绍 基于 STM32F407+ESP8266+RFID 的模拟公交车刷卡收费系统(物联网) STM32 通过 RFID 识别获取卡片数据并通过串口发送到 ...
- 支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生
AirPlay初期命名为AirTunes,它是由苹果公司在2004年发布,意在将iTunes上的流音频文件通过无线技术传输至扬声器(扬声器与AirPort Express连接).2010年乔布斯将Ai ...
- 基于STM32F407+RFID的模拟公交车刷卡收费系统小项目
BusChargeSystem 项目介绍 基于STM32F407+RFID的模拟公交车刷卡收费系统 开源仓库地址: github:https://github.com/DaXiongRen/BusCh ...
- 无线电能传输 wpt 磁耦合谐振 过零检测 基于二极管整流的无线电能传输设计 基于同步整流的无线电能传输设计
无线电能传输 wpt 磁耦合谐振 过零检测 matlab simulink仿真 pwm MOSFET,过零检测模块 基于二极管整流的无线电能传输设计 基于同步整流的无线电能传输设计(含过零比较) 两个 ...
- 无线电能传输 wpt 磁耦合谐振 过零检测 matlab simulink仿真 pwm MOSFET,过零检测模块 基于二极管整流的无线电能传输设计
无线电能传输 wpt 磁耦合谐振 过零检测 matlab simulink仿真 pwm MOSFET,过零检测模块 基于二极管整流的无线电能传输设计 基于同步整流的无线电能传输设计(含过零比较) 两个 ...
- 智能家电项目Linux程序,基于ARM-Linux的无线智能家居系统
设计.发明的目的和基本思路.创新点.技术关键和主要技术指标 本科技制作主要是基于ARM9的软硬件平台和ZigBee无线技术来实现智能化的家居生活,让我们的家居生活更方便更省心更体贴.基本思路是通过Zi ...
- 计算机软件实习项目三 —— 超级玛丽闯迷宫(游戏介绍 游戏视屏 游戏下载)12-21
超级玛丽闯迷宫(游戏介绍 & 游戏视屏 & 游戏下载) 经过了几天的开发,超级玛丽床迷宫游戏总算是出炉了.这次开发比前两个项目快了许多,迷宫的定义及随机生成花费一天完成,迷宫自动寻 ...
- 基于JAVA开发使用IDEA兼容Eclipse的动漫视屏网站
基于IDEA兼容Eclipse开发的动漫视屏网站 这是一个适合毕设和课程设计的网站开发 需求分析: 效果图 本地搭建教程 数据库的逆向模型 主要的代码 这是一个适合毕设和课程设计的网站开发 需求分析: ...
最新文章
- 1分钟选好最合适你的JavaScript框架
- OpenGL学习入门之VS2010环境配置 [转]
- 回到顶部和返回首页jquery插件
- 开启AngularJs之旅
- weblogic部署连接池
- 【Java 笔记】 java 格式化输出
- Vim强制写入w!的分析
- WebService的相关概念1
- 文件查找_tar_ext34_swap
- 【BZOJ4774】修路 [斯坦纳树]
- oracle 磁盘响应慢,磁盘故障引起的系统变慢定位
- centos中service命令与/etc/init.d的关系以及centos7的变化
- Python库pygame下载教程
- 软件测试周刊(第25期):不要成天到晚地找意义
- maxscale跨库分片的限制
- Final Cut Pro X无法导入自家的MOV格式,解决方法。
- Bluetooth Battery Monitor(蓝牙电量监控软件)
- SSL 证书签发详细攻略
- 回文数(Java解法)
- 青云上NAS服务器挂的操作(他们的文档)
热门文章
- 开源项目贡献者_如何管理开源项目的临时贡献者
- Oralce数据库ASM存储管理-存储IO故障,disk未及时offline分析,故障分析模板
- 华为运营商级路由器配置示例 | IPv4静态路由
- 【excel实战】-- 批量提取批注多重区域复制粘贴
- 标签超出图像控件c语言,VC++标签控件之图像标签控件
- [数据结构与算法]动态规划:扔鸡蛋问题
- 2021年危险化学品经营单位主要负责人试题及解析及危险化学品经营单位主要负责人模拟考试题
- 用PHP查看微信撤回的消息,python实现文件助手中查看微信撤回消息
- 中医学专业学c语言吗,考研专业课中医学题型分析
- 观战朝鲜vs巴西后,给中国足球的两点建议