野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21620|回复: 2

拍照的历程哦

[复制链接]
发表于 2014-3-31 17:24:37 | 显示全部楼层 |阅读模式
我是M3的板子最近在移植火哥照相机拍照的历程 现在遇到问题就是卡死了,,
这是 主函数

int main(void)        
{
       
          uint8_t file_name[20];
            uint8_t num = 0;
        EXTI_PE5_Config();
        LED_GPIO_Config();
    SystemInit();
    SysTick_Init();
        USART1_Config();
    LCD_Init();
        SCCB_GPIO_Configuration();
    FIFO_GPIO_Configuration();
          sd_fs_init();
    while(Ov7725_Init() != SUCCESS);
    VSYNC_Init();                                                   
    LCD_open_windows(0, 0, 320, 240);
    Ov7725_vsync = 0;
    while(1)
    {
        if( Ov7725_vsync == 2 )
        {
                        FIFO_PREPARE;                          /*FIFO准备*/
            Get_imag_and_discor();        /*采集并显示*/
            Ov7725_vsync = 0;
                //        Frame_Count++;                        /*帧计数器加1*/
        }
                               
                         if( screen_flag == 1 )
        {                    
            //sprintf((char *)&file_name,"/camera%d",num++);           

            /* 设置液晶扫描方向为 右下角->左上角 */

                                          Set_direction(2);
                                         LCD_WR_REG(0x2c);
                                          LED2(ON);
                                          LED3(ON);
            //Screen_shot(0,0,110,110,file_name);
             Screen_shot(0, 0,200,200 , "/anai");
            /* 截图完毕LED2灭 */
            LED2(OFF);
            screen_flag = 0;
        }
  }       
                               
                               
   }


中断时这样的

void EXTI15_10_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line13) != RESET) //确保是否产生了EXTI Line中断
        {
                /* LED1 取反 表示有按键按下 */               
                LED1_TOGGLE;
               
                {/* 截图标志置位,同时LED2灭 */
                        LED2_OFF;
                        screen_flag = 1;
                }
               
                EXTI_ClearITPendingBit(EXTI_Line13);     //清除中断标志位
        }  
}

现在程序是卡在
    Screen_shot(0, 0,200,200 , "/anai");这个函数里面 ,可是我这个函数在截图的程序中是可以用的。。大家给点建议
回复

使用道具 举报

 楼主| 发表于 2014-3-31 17:26:48 | 显示全部楼层
void Set_direction(u8 option)
{

    switch(option)
    {
    case 0:
        {            /*横屏*/
        LCD_ILI9341_CMD(0x36);
                LCD_ILI9341_Parameter(0x68);    //横屏
                LCD_ILI9341_CMD(0X2A);
                LCD_ILI9341_Parameter(0x00);        //start
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0x01);        //end
                LCD_ILI9341_Parameter(0x3F);
               
                LCD_ILI9341_CMD(0X2B);
                LCD_ILI9341_Parameter(0x00);   //start
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0x00);   //end
                LCD_ILI9341_Parameter(0xEF);
        display_direction = 0;               
        }break;
    case 1:
        {                /*竖屏*/
        LCD_ILI9341_CMD(0x36);
            LCD_ILI9341_Parameter(0x48);        //竖屏
            LCD_ILI9341_CMD(0X2A);
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0xEF);       
               
                LCD_ILI9341_CMD(0X2B);
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0x00);
                LCD_ILI9341_Parameter(0x01);
                LCD_ILI9341_Parameter(0x3F);
        display_direction = 1;
        }break;
   case 2:
                {/* 右下角->左上角      显示BMP图片时用的是这种模式 */
                        LCD_ILI9341_CMD(0x36);
                        LCD_ILI9341_Parameter(0x28);       
                        LCD_ILI9341_CMD(0X2A);
                        LCD_ILI9341_Parameter(0x00);
                        LCD_ILI9341_Parameter(0x00);
                        LCD_ILI9341_Parameter(0x01);
                        LCD_ILI9341_Parameter(0x3F);       

                        LCD_ILI9341_CMD(0X2B);
                        LCD_ILI9341_Parameter(0x00);
                        LCD_ILI9341_Parameter(0x00);
                        LCD_ILI9341_Parameter(0x00);
                        LCD_ILI9341_Parameter(0xEF);                       
                }break;     
    }
}
回复 支持 反对

使用道具 举报

发表于 2014-4-1 09:34:36 | 显示全部楼层

回帖奖励 +1 火花

直接对比一下例程啊,这么细节不是亲自移植太难找了,移植的时候留意一下stm32f10x_it.c里的中断服务函数
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-4 17:14 , Processed in 0.028811 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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