5.基于STM32F103+OV7670的网络摄像头
生活随笔
收集整理的這篇文章主要介紹了
5.基于STM32F103+OV7670的网络摄像头
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面移植了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的网络摄像头的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.1 ucGUI 图片显示方法
- 下一篇: uboot源码分析笔记