前面移植了ucGUI,按说接下来应该说一下如何移植摄像头,不过如果根据奋斗开发板附带的源码摸索,也基本能看明白,无非就是初始化,设置中断和读取数据,添加任务等。

如果移植好了摄像头,那接下来就该移植uip了,这个确实头大,我搞了三天没搞成功,后来直接用书上附带的源码学习了,不过没有使用UCOS系统。

我把uip和摄像头的两个项目合并了,做了一个网络摄像头,下位机用MDK511实现,上位机用QT 5.3.2实现。

最主要的部分是修改了UDP_demo.c文件内的内容,当请求媒体流时,读取摄像头中的信息并发送,但uip不支持自动分片,而且一个视频画面有320*720*2的长度,无法一次发送,我设置了一个721长度的short类型的数组,手动将视频信息分片,第一个元素存放视频的编码,因为是通过UDP发送,防止乱序,后面存放该视频的内容,所以数组长度是1+720

pic[i]=CMOS_Data;
//USART_OUT(USART1,"will send pic%d,sizeof(pic)=%d\r\n",j,sizeof(pic));
if(i>719){if(j==number){//USART_OUT(USART1,"will send pic%d,sizeof(pic)=%d\r\n",j,sizeof(pic));myudp_send((char *)pic,sizeof(pic));break;}j++;pic[0]=j;i=0;
}

上位机用QT编写,新建一个QImage,设置格式为Format_RGB16,然后把从下位机通过网络发送的包写到数组pic中相应的位置即可

image=QImage(pic,320,240,QImage::Format_RGB16);

当然,我QT也是现学现用,只求把功能实现了,有许多要改进的地方,勿怪

5.基于STM32F103+OV7670的网络摄像头相关推荐

  1. 基于TCP协议的网络摄像头的设计与实现

    一.摘要 基于TCP协议的网络摄像头的设计大部分和博文"基于UDP协议的网络摄像头的设计与实现"相同,本篇博文采用的TCP协议栈为NicheStack协议栈(同理,可使用LWIP协 ...

  2. 基于QT的华为网络摄像头二次开发

    资源下载链接 第一次使用华为的网络摄像头并进行二次开发,网上关于QT对华为网络摄像头的二次开发的文章很少,基于项目的需求做了一些工作,特此记录. 目标: 1.实时预览 2.手动控制录制视频 3.监听告 ...

  3. 基于Qt的海康威视网络摄像头SDK的二次开发

    最近用Qt做了一个基于海康威视网络摄像头SDK的二次开发,效果还不错.文章最后将开发的资料和demo软件通过链接方式分享,有兴趣的可以看下效果. 开发情况介绍: qt版本:Qt5.14.2 海康SDK ...

  4. 基于QT的海康威视网络摄像头二次开发

    资源下载链接 第一次使用海康威视的网络摄像头并进行二次开发,海康威视网络摄像头的二次开发的资料已经比较详细,网上关于这方面的介绍也不少.此处基于我的需求做了一些工作,特此记录. 目标: 1.实时预览 ...

  5. 基于Qt的海康威视网络摄像头SDK的二次开发——摄像头登录和预览

    海康威视网络摄像头SDK的二次开发,需要摄像头IP地址,与主机的IP地址在同一网段,能够ping通摄像头IP,才能登录成功.摄像头是有账户名和密码,这需要记住,在开发的时候需要用到. 在开发前可以先用 ...

  6. 基于QT实现对网络摄像头数据的显示

    其实一直有一个想法,就是设计一个远程视频监控软件,目前自己手中有的硬件包括:mini2440开发板,韦东山老师的摄像头模块ov7740,当然这款摄像头提供了基于mini2440下的读取及显示功能,但是 ...

  7. 史上最全的基于ffmpeg+sdl网络摄像头编解码播放资料(包含交叉编译过程,附带完整源码)

    原创博文,严禁私自转载,转载请注明出处!!! 近期,由于工作需要,要在开发板上跑一个摄像头,摄像头款式比较老,不支持rtsp格式,所以选择编译ffmpeg+sdl实现软解码播放摄像头,特此记录整个编译 ...

  8. [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控

    [Rtsp]海康网络摄像头基于RTSP协议的windows平台监控 基于RTSP协议的windows平台监控. 1.  基于RTSP协议的windows平台监控. 1.1 选取海康网络摄像头(支持RT ...

  9. 基于大华SDK的二次开发,用于网络摄像头图像的实时显示和捕获(附源码)

    目录 1. 文章背景 2. 主要模块 2.1 初始化SDK 2.2 登录账号 2.3 捕获图片 2.4 实时显示 2.5 断开时释放 2.6 回调函数 3. 源代码 3.1 头文件 3.2 源文件 1 ...

最新文章

  1. 盘点深度学习中的各种数据增强技巧
  2. 【转】【C#】判断两个文件是否相同
  3. android 添加日程失败,Andriod向系统日历添加日程
  4. [收藏]Linux下update错误 E: Dynamic MMap ran out of room. 解决方法
  5. WDK tips (9.1) 同步机制与锁
  6. Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)
  7. mysql怎样修改my ini_mysql修改my.ini报错怎么办
  8. 开源开放 | 移动应用知识图谱MAKG(CCKS2021)
  9. 数字图像识别笔记(第一章绪论)
  10. Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环境
  11. 在页面加载后执行任务
  12. flex学习笔记 数据验证
  13. Adobe Creative Cloud没有管理应用程序的权限
  14. mysql查询当前时间的前后几天时间
  15. vsCode 源代码管理插件GitLens使用指南
  16. 写好 JavaScript 异步代码的几个技巧
  17. Sicily 1048. Inverso
  18. 2018------书籍电影和音乐
  19. PAT乙级(Basic Level)练习题 星际密码
  20. 体育IP价值大爆发 本土赛事IP蕴含着巨大发展潜力

热门文章

  1. struct.error: ushort format requires 0 <= number <= 0xffff
  2. Android 使用adb 抓取日志信息
  3. 使用Java监控工具出现 Can't attach to the process
  4. 51nod 1617 奇偶数组
  5. jq--ajax中止请求
  6. 2022-2028年中国免疫诊断行业市场前瞻与投资战略规划分析报告
  7. 2022-2028年中国医疗+养老产业深度调研及投资前景预测报告
  8. Java Websocket实例【服务端与客户端实现全双工通讯】
  9. PyTorch 笔记(10)— Tensor 与 NumPy 相互转换、两种共享内存以及两者的广播法则
  10. PyTorch 笔记(04)— Tensor 属性方法(获取元素个数numel/neleme、查看形状size()/shape、增减维度squeeze()/unsqueeze()、resize形状)