stm32f103在主程序中先执行ov2640拍照程序后,再执行usb读卡器实验,电脑不能读取出板子上的sd卡。
备注:是同一个main主程序中执行,依次执行两个实验
1.如果先执行usb读卡器实验,再执行camera实验,camera照相会特别模糊,后来找到办法解决了。执行SDIO->ICR=0X5FF; //清除所有sdio标记后解决
2.如果先执行camera实验,再执行usb读卡器实验,在电脑上不能读取出sd卡。执行SDIO->ICR=0X5FF;也没解决。然后发现在camera实验中执行了
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载FLASH.
可能是这个的影响?然后我尝试在执行完camera程序后执行:
f_mount(NULL,"0:",1); //取消挂载sd卡.
f_mount(NULL,"1:",1); //取消挂载FLASH.
但是,还是不能在电脑上读取sd卡?
该怎么解决呢?是camera哪儿的什么设置影响了usb程序,才导致不能读取出sd卡?该怎么解决???
附:camera部分代码
usmart_dev.init(72); //初始化USMART
BEEP_Init(); //蜂鸣器初始化
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载FLASH.
POINT_COLOR=RED;
Show_Str(30,50,200,16,"STM32F103 开发板",16,0);
Show_Str(30,70,200,16,"OV2640照相机实验",16,0);
Show_Str(30,90,200,16,"KEY0:拍照(bmp格式)",16,0);
Show_Str(30,110,200,16,"KEY1:拍照(jpg格式)",16,0);
Show_Str(30,130,200,16,"2015年4月16日",16,0);
res=f_mkdir("0:/PHOTO"); //创建PHOTO文件夹
if(res!=FR_EXIST&&res!=FR_OK) //发生了错误
{
Show_Str(30,150,240,16,"SD卡错误,无法拍照!",16,0);
sd_ok=0;
}
ov2640_framebuf=mymalloc(SRAMIN,52*1024);//申请帧缓存
pname=mymalloc(SRAMIN,30); //为带路径的文件名分配30个字节的内存
while(!pname||!ov2640_framebuf) //内存分配出错
{
Show_Str(30,150,240,16,"内存分配失败!",16,0);
delay_ms(200);
LCD_Fill(30,150,240,146,WHITE);//清除显示
delay_ms(200);
}
while(OV2640_Init()) //初始化OV2640
{
Show_Str(30,150,240,16,"OV2640 错误!",16,0);
delay_ms(200);
LCD_Fill(30,150,239,206,WHITE);
delay_ms(200);
}
Show_Str(30,170,200,16,"OV2640 正常",16,0);
delay_ms(1500);
//TIM6_Int_Init(10000,7199); //10Khz计数频率,1秒钟中断,屏蔽则不打印帧率
OV2640_RGB565_Mode(); //RGB565模式
OV2640_OutSize_Set(lcddev.width,lcddev.height);
ov2640_speed_ctrl();
MYDMA_SRAMLCD_Init((u32)ov2640_framebuf);
该怎么解决呢?是camera哪儿的什么设置影响了usb程序,才导致不能读取出sd卡?该怎么解决???
一周热门 更多>