OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4374|回复: 6

关于照相机的例程,图片开裂的问题

[复制链接]

4

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2015-10-5
在线时间
27 小时
发表于 2017-4-10 10:14:35 | 显示全部楼层 |阅读模式
1金钱
[mw_shl_code=c,true]int main(void)
{        
        u8 res;                                                         
        u8 *pname;                                //′øÂ·¾¶μÄÎļtÃû
        u8 key;                                        //¼üÖμ                  
        u8 i;                                                 
        u8 sd_ok=1;                                //0,sd¿¨2»Õy3£;1,SD¿¨Õy3£.
        u8 scale=1;                                //ĬèÏêÇè«3ß′çËõ·Å
        u8 msgbuf[15];                        //ÏûÏ¢»o′æÇø

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏè¼¶·Ö×é2
        delay_init(168);  //3õê¼»ˉÑóê±oˉêy
        TIM3_Int_Init(10000-1,8400-1);//10Khz¼Æêy,1ÃëÖóÖD¶Ïò»′Î
        FSMC_SRAM_Init();                        //3õê¼»ˉía2¿SRAM.
        KEY_Init();                                        //°′¼ü3õê¼»ˉ   
        LED_Init();//LED
        Power_Init();
        my_mem_init(SRAMIN);                //3õê¼»ˉÄú2¿Äú′æ3Ø
        my_mem_init(SRAMEX);                //3õê¼»ˉÄú2¿Äú′æ3Ø  
        my_mem_init(SRAMCCM);                //3õê¼»ˉCCMÄú′æ3Ø
        exfuns_init();                                //ÎafatfsÏà1رäá¿éêÇëÄú′æ  
  f_mount(fs[0],"0:",1);                 //1òÔØSD¿¨  
        res=f_mkdir("0:/PHOTO");                //′′½¨PHOTOÎļt¼D
        if(res!=FR_EXIST&&res!=FR_OK)         //·¢éúáË′íÎó
         sd_ok = 0;
        else
         sd_ok = 1;
       
        jpeg_buf0=mymalloc(SRAMIN,jpeg_dma_bufsize*4);        //Îajpeg dma½óêÕéêÇëÄú′æ       
        jpeg_buf1=mymalloc(SRAMIN,jpeg_dma_bufsize*4);        //Îajpeg dma½óêÕéêÇëÄú′æ       
        jpeg_data_buf=mymalloc(SRAMEX,300*1024);                //ÎajpegÎļtéêÇëÄú′æ(×î′ó300KB)
        pname=mymalloc(SRAMIN,30);//Îa′øÂ·¾¶μÄÎļtÃû·ÖÅä30¸ö×Ö½úμÄÄú′æ         
        while(pname==NULL||!jpeg_buf0||!jpeg_buf1||!jpeg_data_buf)        //Äú′æ·ÖÅä3ö′í
        {            
                          
        }   
        while(OV2640_Init())//3õê¼»ˉOV2640
        {

        }       
        delay_ms(2000);
        My_DCMI_Init();                        //DCMIÅäÖÃ
        while(1)
        {       
                key=KEY_Scan(0);//2»Ö§3Öᬰ′
                if(key)
                {
                        if(sd_ok)//SD¿¨Õy3£2Å¿éòÔÅÄÕÕ
                        {   
                                if(key==KEY1_PRES)//JPGÅÄÕÕ
                                //if(key==KEY0_PRES)
                                {

                                        camera_new_pathname(pname,1);//μÃμ½ÎļtÃû       
                                        res=ov2640_jpg_photo(pname);                               
                                }
                                BEEP=1;        //·äÃùÆ÷¶ì½D£¬ìáê¾ÅÄÕÕíê3é
                                delay_ms(100);
                                 BEEP=0;        //·äÃùÆ÷¶ì½D£¬ìáê¾ÅÄÕÕíê3é                        
                        }
                }
                delay_ms(10);
                i++;
                if(i==20)//DS0éá˸.
                {
                        i=0;
                        LED0=!LED0;
                }
        }
}[/mw_shl_code]
哥们,我就把屏幕的东西去掉,剩下的按键拍照,为什么前面两张是完整的,后面的就都出现断层了呢?

最佳答案

查看完整内容[请看2#楼]

已经解决了啦,是PCB布线的问题,导致用文件系统写SD卡的时候会导致出错,谢谢各位!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2015-10-5
在线时间
27 小时
 楼主| 发表于 2017-4-10 10:14:36 | 显示全部楼层
已经解决了啦,是PCB布线的问题,导致用文件系统写SD卡的时候会导致出错,谢谢各位!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-4-12 01:20:34 | 显示全部楼层
图片尺寸太大导致的,改小拍照分辨率试试
回复

使用道具 举报

4

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
279
金钱
279
注册时间
2015-10-5
在线时间
27 小时
 楼主| 发表于 2017-4-13 14:10:17 | 显示全部楼层
本帖最后由 461450651 于 2017-4-13 15:50 编辑
正点原子 发表于 2017-4-12 01:20
图片尺寸太大导致的,改小拍照分辨率试试

不是,哥我发现问题所在了,可是又不知道为什么
我直接从单片机那个大的数组中提取一副图片出来,再放到电脑显示,是没问题的
可是从TF卡中提一幅图片出来就会出现断裂的情况了,提取用的是WINHEX软件
最后我对比了两组数据,是内存卡中的数据错了,会少了几个字节,也会字节变了,就是为什么会存错了呢?就是下面红框的地方,左边是好的图片数据,右边是坏的图片数据 QQ图片20170413141118.png

还有就是图片有几个字符的差别也会导致图片的开裂,就是下面的差别
3.png 4.png
那几个字符的差别最终导致图片的结果就是
1.jpg 2.jpg
那么为什么写进去TF卡的数据会错了几个呢?怎么提高写进去TF卡的数据的正确性的?





回复

使用道具 举报

0

主题

12

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-5-18
在线时间
0 小时
发表于 2017-5-18 11:21:35 | 显示全部楼层
谢谢分享,学习学习。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-5-22 01:45:51 | 显示全部楼层
461450651 发表于 2017-4-13 14:10
不是,哥我发现问题所在了,可是又不知道为什么
我直接从单片机那个大的数组中提取一副图片出来,再放到 ...

写速度跟不上吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-5-22 01:46:02 | 显示全部楼层
461450651 发表于 2017-4-13 14:10
不是,哥我发现问题所在了,可是又不知道为什么
我直接从单片机那个大的数组中提取一副图片出来,再放到 ...

换高速卡试试
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 11:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表