STM32f103 物联网OV2640摄像头wifi传送
<STM32f103 物联网OV2640摄像头wifi传送>本实验基于stm32103开发,实现读取OV2640摄像头采集的图像信息,并存入数组,通过esp8266wifi模块,把数据发送到云端。本例程只提供硬件端代码,服务器端需自己实现。 此外若只用OV2640部分则可把WiFi传输部分注释即可,OV2640和WiFi均作了封装分离,用者自取。部分代码如下: u8 ov2640_jpg_photo() { u8 res=0; u32 i=0,t=0,j=0,c; u32 jpeglen=0; u8* pbuf; u32 Len=0; u8 s[4]; OV2640_JPEG_Mode(); //切换为JPEG模式 OV2640_OutSize_Set(OV2640_JPEG_WIDTH,OV2640_JPEG_HEIGHT); SCCB_WR_Reg(0XFF,0X00); SCCB_WR_Reg(0XD3,30); SCCB_WR_Reg(0XFF,0X01); SCCB_WR_Reg(0X11,0X1); for(i=0;i<10;i++) //丢弃10帧,等待OV2640自动调节好(曝光白平衡之类的) { while(OV2640_VSYNC==1); while(OV2640_VSYNC==0); } while(OV2640_VSYNC==1) //开始采集jpeg数据 { while(OV2640_HREF) { while(OV2640_PCLK==0); ov2640_framebuf[jpeglen]=OV2640_DATA; while(OV2640_PCLK==1); jpeglen++; } } pbuf=(u8*)ov2640_framebuf; for(i=0;i<jpeglen;i++)//查找0XFF,0XD8 { if((pbuf[i]==0XFF)&&(pbuf[i+1]==0XD8))//记录帧头位置 { t=i; } if((pbuf[i]==0XFF)&&(pbuf[i+1]==0XD9))//记录帧尾位置 { j=i+1; break; } } Len=j-t+1; if(i==jpeglen) { res=1;//没找到0XFF,0XD8 } else //找到了 { pbuf+=t;//偏移到0XFF,0XD8处 s[0]=(u8)(((Len)&0xff000000;)>>24); s[1]=(u8)(((Len)&0xff0000;)>>16); s[2]=(u8)(((Len)&0xff00;)>>8); s[3]=(u8)((Len)&0xff;); for(c=0;c<4;c++) //发送报文长度 { USART1->DR=s[c]; while((USART1->SR&0X40;)==0); } SendRAMDate(Len,pbuf); } return res; }
- 1
- 2
- 3
- 粉丝: 20
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论4