你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

为什么Stm32F103驱动ov7670有严重的分屏现象。

[复制链接]
打不打伞眼睛都时湿的 提问时间:2021-5-20 12:29 / 未解决
收藏 评论5 发布时间:2021-5-20 12:29

举报

5个回答
奇迹 回答时间:2021-5-21 10:35:00
估计是同步的问题,看一下拍照的缓冲与摄像头的缓冲
打不打伞眼睛都时湿的 回答时间:2021-5-24 00:42:01
我使用的是带FIFO摄像头
奇迹 回答时间:2021-5-24 08:20:12
有图片看一下吗
打不打伞眼睛都时湿的 回答时间:2021-5-24 10:33:29
奇迹 发表于 2021-5-24 08:20
有图片看一下吗

20210522164603-844360167.png
图像方向也旋转了-90度,

打不打伞眼睛都时湿的 回答时间:2021-5-24 10:38:13
20210522164603-844360167.png

图像方向也北旋转了90度.
在附上关键性的代码:
截图函数:
  1.   1 void OV7670_shot(void){
  2.   0
  3.   1     u16 color;
  4.   2     if(ov_sta==2){ //针中断更新
  5.   3         OV7670_CS=0;
  6.   4   
  7.   5         OV7670_RRST=0; //开始复位读指针
  8.   6         OV7670_RCK=0;
  9.   7         OV7670_RCK=1;               
  10.   8         OV7670_RCK=0;
  11.   9         OV7670_RRST=1; //复位读指针结束
  12. 10         OV7670_RCK=1;
  13. 11         
  14. 12         int16_t j = 0;   
  15. 13         int16_t i = 0;
  16. 14         for( i=0; i < camera_image_height; i++){
  17. 15             uint16_t length = camera_image_width * 2 +4;
  18. 16             uint8_t line[ length ];
  19. 17             for( j=(camera_image_width-1); j>=0; j-- ){
  20. 18         
  21. 19                 /*//高字节*/
  22. 20                 OV7670_RCK=0;
  23. 21                 line[j*2+1] = GPIOC->IDR&0XFF;
  24. 22                 OV7670_RCK=1;
  25. 23                 
  26. 24                 //底字节
  27. 25                 OV7670_RCK=0;
  28. 26                 line[j*2+0] = GPIOC->IDR&0XFF;
  29. 27                 OV7670_RCK=1;
  30. 28             }   
  31. 29             line[ camera_image_width * 2 +0] = HIGH_BYTE_16(i);
  32. 30             line[ camera_image_width * 2 +1] = LOW_BYTE_16(i);
  33. 31             line[ camera_image_width * 2 +2] = HIGH_BYTE_16( camera_image_width );
  34. 32             line[ camera_image_width * 2 +3] = LOW_BYTE_16( camera_image_width );
  35. 33             whl102l_send_image( line, length);
  36. 34            
  37. 35         }   
  38. 36            
  39. 37         OV7670_CS=1;
  40. 38         p_count =0;
  41. 39         EXTI_ClearITPendingBit(EXTI_Line8); //清除LINE8上的中断标志位
  42. 40         ov_sta=0; //开始下一次采集
  43. 41         ov_frame++;
  44. 42     }   
  45. 43 }   
复制代码
窗口设置函数:
  1. 20 void OV7670_Window_Set(u16 sx,u16 sy,u16 width,u16 height)
  2. 19 {
  3. 18     u16 endx;
  4. 17     u16 endy;
  5. 16     u8 temp;
  6. 15     endx=sx+width*2;
  7. 14      endy=sy+height*2;
  8. 13     if(endy>784)endy-=784;
  9. 12     temp=SCCB_RD_Reg(0X03);
  10. 11     temp&=0XF0;
  11. 10     temp|=((endx&0X03)<<2)|(sx&0X03);
  12.   9
  13.   8     SCCB_WR_Reg(0X03,temp);
  14.   7     SCCB_WR_Reg(0X19,sx>>2);
  15.   6     SCCB_WR_Reg(0X1A,endx>>2);
  16.   5
  17.   4     temp=SCCB_RD_Reg(0X32);
  18.   3     temp&=0XC0;
  19.   2     temp|=((endy&0X07)<<3)|(sy&0X07);
  20.   1     SCCB_WR_Reg(0X17,sy>>3);
  21.   0     SCCB_WR_Reg(0X18,endy>>3);
  22.   1 }
复制代码
外部中断函数:
  1.   6 void EXTI9_5_IRQHandler(void){               
  2.   7     if(EXTI_GetITStatus(EXTI_Line8)==SET)//是8线的中断
  3.   8     {   
  4.   9         if(ov_sta<2)               
  5. 10         {
  6. 11             if(ov_sta==0)           
  7. 12             {
  8. 13                 printf( "允许写入\n" );
  9. 14                 OV7670_WRST=0;         //复位写指针                  
  10. 15                 OV7670_WRST=1;      
  11. 16                 OV7670_WREN=1;        //允许写入FIFO     
  12. 17             }else{                  
  13. 18                 printf( "禁止写入\n" );
  14. 19                 OV7670_WREN=0;        //禁止写入FIFO     
  15. 20                 OV7670_WRST=0;         //复位写指针                  
  16. 21                 OV7670_WRST=1;      
  17. 22             }                       
  18. 23             ov_sta++;               
  19. 24         }
  20. 25     }   
  21. 26         
  22. 27     EXTI_ClearITPendingBit(EXTI_Line8);  //清除EXTI8线路挂起位                        
  23. 28 }   
复制代码
寄存器配置:
  1. const u8 ov7670_init_reg_tbl[][2]=
  2. {
  3.     {0x3a, 0x04},
  4.     {0x40, 0x10},
  5.     {0x12, 0x14},
  6.     {0x32, 0x80},
  7.     {0x17, 0x17},
  8.     {0x18, 0x05},
  9.     {0x19, 0x02},
  10.     {0x1a, 0x7b},//0x7a,
  11.     {0x03, 0x0a},//0x0a,
  12.     {0x0c, 0x0c},
  13.     {0x3e, 0x00},//
  14.     {0x70, 0x00},
  15.     {0x71, 0x01},
  16.     //{0x71, 0x80}, //0x80测试彩条
  17.     {0x72, 0x11},
  18.     {0x73, 0x09},//
  19.     {0xa2, 0x02},
  20.     {0x11, 0x00},
  21.     {0x7a, 0x20},
  22.     {0x7b, 0x1c},
  23.     {0x7c, 0x28},
  24.     {0x7d, 0x3c},
  25.     {0x7e, 0x55},
  26.     {0x7f, 0x68},
  27.     {0x80, 0x76},
  28.     {0x81, 0x80},
  29.     {0x82, 0x88},
  30.     {0x83, 0x8f},
  31.     {0x84, 0x96},
  32.     {0x85, 0xa3},
  33.     {0x86, 0xaf},
  34.     {0x87, 0xc4},
  35.     {0x88, 0xd7},
  36.     {0x89, 0xe8},
  37.     {0x13, 0xe0},
  38.     {0x00, 0x00},
  39.     {0x10, 0x00},
  40.     {0x0d, 0x00},
  41.     {0x14, 0x38},
  42.     {0xa5, 0x05},
  43.     {0xab, 0x07},
  44.     {0x24, 0x75},
  45.     {0x25, 0x63},
  46.     {0x26, 0xA5},
  47.     {0x9f, 0x78},
  48.     {0xa0, 0x68},
  49.     {0xa1, 0x03},//0x0b,
  50.     {0xa6, 0xdf},//0xd8,
  51.     {0xa7, 0xdf},//0xd8,
  52.     {0xa8, 0xf0},
  53.     {0xa9, 0x90},
  54.     {0xaa, 0x94},
  55.     {0x13, 0xe5},
  56.     {0x0e, 0x61},
  57.     {0x0f, 0x4b},
  58.     {0x16, 0x02},
  59.     {0x1e, 0x27},//0x07,
  60.     {0x21, 0x02},
  61.     {0x22, 0x91},
  62.     {0x29, 0x07},
  63.     {0x33, 0x0b},
  64.     {0x35, 0x0b},
  65.     {0x37, 0x1d},
  66.     {0x38, 0x71},
  67.     {0x39, 0x2a},
  68.     {0x3c, 0x78},
  69.     {0x4d, 0x40},
  70.     {0x4e, 0x20},
  71.     {0x69, 0x5d},
  72.     {0x6b, 0x40},//PLL
  73.     {0x74, 0x19},
  74.     {0x8d, 0x4f},
  75.     {0x8e, 0x00},
  76.     {0x8f, 0x00},
  77.     {0x90, 0x00},
  78.     {0x91, 0x00},
  79.     {0x92, 0x00},//0x19,//0x66
  80.     {0x96, 0x00},
  81.     {0x9a, 0x80},
  82.     {0xb0, 0x84},
  83.     {0xb1, 0x0c},
  84.     {0xb2, 0x0e},
  85.     {0xb3, 0x82},
  86.     {0xb8, 0x0a},
  87.     {0x43, 0x14},
  88.     {0x44, 0xf0},
  89.     {0x45, 0x34},
  90.     {0x46, 0x58},
  91.     {0x47, 0x28},
  92.     {0x48, 0x3a},
  93.     {0x59, 0x88},
  94.     {0x5a, 0x88},
  95.     {0x5b, 0x44},
  96.     {0x5c, 0x67},
  97.     {0x5d, 0x49},
  98.     {0x5e, 0x0e},
  99.     {0x64, 0x04},
  100.     {0x65, 0x20},
  101.     {0x66, 0x05},
  102.     {0x94, 0x04},
  103.     {0x95, 0x08},
  104.     {0x6c, 0x0a},
  105.     {0x6d, 0x55},
  106.     {0x6e, 0x11},
  107.     {0x6f, 0x9f},
  108.     {0x6a, 0x40},
  109.     //{0x01, 0x60},
  110.     //{0x02, 0x60},
  111.     {0x13, 0xe7},
  112.     {0x15, 0x00},
  113.     {0x4f, 0x80},
  114.     {0x50, 0x80},
  115.     {0x51, 0x00},
  116.     {0x52, 0x22},
  117.     {0x53, 0x5e},
  118.     {0x54, 0x80},
  119.     {0x55, 0x00},//亮度
  120.     {0x56, 0x60},//对比度
  121.     {0x57, 0x90},
  122.     {0x58, 0x9e},
  123.     {0x41, 0x08},
  124.     {0x3f, 0x05},//边缘增强调整
  125.     {0x75, 0x05},
  126.     {0x76, 0xe1},
  127.     {0x4c, 0x0F},//噪声抑制强度
  128.     {0x77, 0x0a},
  129.     {0x3d, 0xc2},    //0xc0,
  130.     {0x4b, 0x09},
  131.     {0xc9, 0xc8},
  132.     {0x41, 0x38},

  133.     {0x34, 0x11},
  134.     {0x3b, 0x02},//0x00,//0x02,
  135.     {0xa4, 0x89},//0x88,
  136.     {0x96, 0x00},
  137.     {0x97, 0x30},
  138.     {0x98, 0x20},
  139.     {0x99, 0x30},
  140.     {0x9a, 0x84},
  141.     {0x9b, 0x29},
  142.     {0x9c, 0x03},
  143.     {0x9d, 0x4c},
  144.     {0x9e, 0x3f},
  145.     {0x78, 0x04},
  146.     {0x79, 0x01},
  147.     {0xc8, 0xf0},
  148.     {0x79, 0x0f},
  149.     {0xc8, 0x00},
  150.     {0x79, 0x10},
  151.     {0xc8, 0x7e},
  152.     {0x79, 0x0a},
  153.     {0xc8, 0x80},
  154.     {0x79, 0x0b},
  155.     {0xc8, 0x01},
  156.     {0x79, 0x0c},
  157.     {0xc8, 0x0f},
  158.     {0x79, 0x0d},
  159.     {0xc8, 0x20},
  160.     {0x79, 0x09},
  161.     {0xc8, 0x80},
  162.     {0x79, 0x02},
  163.     {0xc8, 0xc0},
  164.     {0x79, 0x03},
  165.     {0xc8, 0x40},
  166.     {0x79, 0x05},
  167.     {0xc8, 0x30},
  168.     {0x69, 0xaa},//
  169.     {0x09, 0x00},
  170.     {0x3b, 0x42},
  171.     {0x2d, 0x01},
  172. };
复制代码




关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版