[mw_shl_code=c,true]///////////直接读FIFO缓存直接写进SD卡/////////////////////
void camera_refresh(void)
{
u32 j; u8 res;
u16 color;
if(ov_sta==2)
{
// LCD_Scan_Dir(U2D_L2R); //从上到下,从左到右
// LCD_SetCursor(0x00,0x0000); //设置光标位置
// LCD_WriteRAM_Prepare(); //开始写入GRAM
OV7670_RRST=0; //开始复位读指针
OV7670_RCK=0;
OV7670_RCK=1;
OV7670_RCK=0;
OV7670_RRST=1; //复位读指针结束
OV7670_RCK=1;
for(j=0;j<76800;j++)
{
OV7670_RCK=0;
color=GPIOC->IDR&0XFF; //读数据
OV7670_RCK=1;
buffera[0]=(unsigned char)color;
color<<=8;
OV7670_RCK=0;
color|=GPIOC->IDR&0XFF; //读数据
OV7670_RCK=1;
// LCD->LCD_RAM=color;
buffera[1]=(unsigned char)color;
res=f_write(ftemp, buffera,2, &bw); //前面定义了unsigned char buffera[2];
}
res=f_close(ftemp);
EXTI_ClearITPendingBit(EXTI_Line8); //清除EXTI8线路挂起位
ov_sta=0; //开始下一次采集
ov_frame++;
}
}
///////////////////////这里是BMP生成函数,被我改为在这里只写进BMP文件头了(因为没有LCD,所以读不了LCD的图片信息),然后在上面那个函数写进BMP数据区//////////
u8 bmp_encode(u8 *filename,u16 width,u16 height,u8 mode)
{
// FIL* f_bmp;
u16 bmpheadsize; //bmp头大小
BITMAPINFO hbmp; //bmp头
u8 res=0;
bmpheadsize=sizeof(hbmp);//得到bmp文件头的大小
mymemset((u8*)&hbmp,0,sizeof(hbmp));//置零空申请到的内存.
hbmp.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);//信息头大小
hbmp.bmiHeader.biWidth=width; //bmp的宽度
hbmp.bmiHeader.biHeight=height; //bmp的高度
hbmp.bmiHeader.biPlanes=1; //恒为1
hbmp.bmiHeader.biBitCount=16; //bmp为16位 {MOD}bmp
hbmp.bmiHeader.biCompression=BI_BITFIELDS;//每个象素的比特由指定的掩码决定。
hbmp.bmiHeader.biSizeImage=hbmp.bmiHeader.biHeight*hbmp.bmiHeader.biWidth*hbmp.bmiHeader.biBitCount/8;//bmp数据区大小
hbmp.bmfHeader.bfType=((u16)'M'<<8)+'B';//BM格式标志
hbmp.bmfHeader.bfSize=bmpheadsize+hbmp.bmiHeader.biSizeImage;//整个bmp的大小
hbmp.bmfHeader.bfOffBits=bmpheadsize;//到数据区的偏移
hbmp.RGB_MASK[0]=0X00F800; //红 {MOD}掩码
hbmp.RGB_MASK[1]=0X0007E0; //绿 {MOD}掩码
hbmp.RGB_MASK[2]=0X00001F; //蓝 {MOD}掩码
if(mode==1)res=f_open(ftemp,(const TCHAR*)filename,FA_READ|FA_WRITE);//尝试打开之前的文件
if(mode==0||res==0x04)res=f_open(ftemp,(const TCHAR*)filename,FA_WRITE|FA_CREATE_NEW);//模式0,或者尝试打开失败,则创建新文件
if(res==FR_OK)//创建成功
{
res=f_write(ftemp,(u8*)&hbmp,bmpheadsize,&bw);//写入BMP首部
}
return res;
}[/mw_shl_code]
经过单步调试,SD卡、ov7670等是初始化成功,没问题的,SD卡写进去也没问题。。。。。
各位大佬,请不吝赐教,谢谢!!!!
@正点原子
一下是现在拍到的相片!!!
一周热门 更多>