• 9岁女童学跳舞致双下肢截瘫 这个动作家长要警惕 2019-07-22
  • “音乐教父”罗大佑现身《朗读者》自曝曾因创作压力离台赴港 2019-07-19
  • 重磅:国民党前主席洪秀柱到访西藏提出这点希望颇有深意 2019-07-07
  • 2017大皖客户端徽派栏目全面回顾宣传片 2019-07-07
  • 传Switch即将支持媒体应用 看电影听音乐不是梦传Switch即将支持媒体应用-行情资讯 2019-07-03
  • 你就是小小文学家!“长城小作家”开始招募啦! 2019-06-24
  • 这些“专家”说得相当不靠谱,没有一个说到点子上。事实上不仅“农民没有富起来”,广大工薪阶层也“没有富起来”,其根本原因在于社会财富被个人占为私有的私有... 2019-06-24
  • 端午——网络中国节——黄河新闻网 2019-06-23
  • 【世界杯·望俄打卦】突尼斯VS英格兰,“欧洲的中国队”英格兰是否突围 2019-06-21
  • 新疆铁路端午小长假加开41列旅客列车 2019-06-21
  • 美国的本质和终极目的决定,和中国必定是始终不断战事硝烟。 2019-06-15
  • 端午将至,我们更加要严格自律,不能趁过节之际搞吃喝送礼、公车私用、公款旅游等,要严防不正之风反弹回潮。做好自己的分内之事,安分守己,加强自我管理和监督,严格遵守 2019-06-15
  • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2019-06-03
  • 尽管管理层一任一任地换,但是以每年IPO数量的多少作为反映政绩的主要标志,而对于股市下跌、市值(包括国有股)损失、经济晴雨表失真、投资者利益巨亏等等,则不在考核 2019-05-31
  • 打倒控房抄者有理,去分房好! 2019-05-26
  • 快乐12技巧绝密杀号:社区导航

     

    广东十一选五开奖图

    搜索
    查看: 548|回复: 5
    打印 上一主题 下一主题

    [原创] 【 ST NUCLEO-H743ZI测评】(4)-DCMI之OV7620采集

    [复制链接]

    广东十一选五开奖图 www.guu6.com 550

    TA的帖子

    1

    TA的资源

    一粒金砂(高级)

    Rank: 3Rank: 3

    跳转到指定楼层
    楼主
    发表于 2019-3-15 22:25 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
        我对对应摄像头的认识最早应该是从之前飞思卡尔智能车(现在应该是恩智浦智能车了)开始的,那会儿有摄像头组,我参加的不是这个组别,但是对这个比较好奇,我是参加电磁组,采集的是磁场的中的几个点,根据点的值来推断通电导线位置。而摄像头是直接看一个面,低头看脚下,抬头看前方很是羡慕。再之后是参加论坛测评NXP LPC54100的时候想趁机会采集下摄像头,当时是用的之前的土办法,自己设行中断场中断来大致获取数据,数据量也有限,根本无法获得整张图片。    现在有了H7的板子,自然是要试试DCMI的,前面废话说了不少,马上开始正题。

    DCMI配置大致如上图,再额外使能个串口。
    下面是初始化代码
    1. DCMI->IER |=  DCMI_IER_VSYNC_IE ;
    2.         DCMI->CR |=  DCMI_CR_CAPTURE | DCMI_CR_CM;
    3.         DCMI->CR =        0x00094282;
    复制代码

    开中断,再中断里判断采集的状况。
    1. if((DCMI->RISR&DCMI_RIS_VSYNC_RIS)==DCMI_RIS_VSYNC_RIS)
    2.         {
    3.                 DCMI->ICR |= DCMI_ICR_VSYNC_ISC;
    4.                 if(dcmi_line_cnt>0)finish_cnt[2]=dcmi_line_cnt;
    5.                 dcmi_line_cnt=0;
    6.                 if(dcmi_pixel_cnt>0)finish_cnt[0]=dcmi_pixel_cnt;
    7.                 dcmi_pixel_cnt=0;
    8.                
    9.         }
    10.         if((DCMI->RISR&DCMI_RIS_LINE_RIS)==DCMI_RIS_LINE_RIS)
    11.         {
    12.                 dcmi_line_cnt++;
    13.                 DCMI->ICR |= DCMI_ICR_LINE_ISC;
    14.         }
    15.         if((DCMI->RISR&DCMI_RIS_FRAME_RIS)==DCMI_RIS_FRAME_RIS)
    16.         {
    17.                 if(dcmi_line_cnt>0)finish_cnt[3]=dcmi_line_cnt;
    18.                 dcmi_line_cnt=0;
    19.                 if(dcmi_pixel_cnt>0)finish_cnt[1]=dcmi_pixel_cnt;
    20.                 dcmi_pixel_cnt=0;
    21.                 DCMI->ICR |= DCMI_ICR_FRAME_ISC;
    22.                 vsync_flag=1;
    23.         }
    24.         if((DCMI->RISR&DCMI_RIS_OVR_RIS)==DCMI_RIS_OVR_RIS)
    25.         {
    26.                 DCMI->ICR |= DCMI_ICR_OVR_ISC;
    27.         }
    28.         if((DCMI->RISR&DCMI_RIS_ERR_RIS)==DCMI_RIS_ERR_RIS)
    29.         {
    30.                 DCMI->ICR |= DCMI_ICR_ERR_ISC;
    31.         }
    复制代码

    在while循环里处理采集的数据,采集完完整的数据交给TFT显示,TFT显示是沿用之前的SPI TFT显示。
    1. if((DCMI->SR&DCMI_SR_FNE)==DCMI_SR_FNE)
    2.                 {
    3.                        
    4.                         d_temp.u32=DCMI->DR;
    5.                         d_buf[dcmi_pixel_cnt*2]=d_temp.u8[0];
    6.                         d_buf[dcmi_pixel_cnt*2+1]=d_temp.u8[2];
    7.                         dcmi_pixel_cnt++;
    8.                         if(dcmi_pixel_cnt>10000)
    9.                                 dcmi_pixel_cnt=0;
    10.                         HAL_GPIO_TogglePin(LD3_GPIO_Port,LD3_Pin);
    11.                 }
    12.                 else
    13.                 {
    14.                         uart_decode();
    15.                         if(vsync_flag)
    16.                         {
    17.                                 vsync_flag=0;
    18.                                 showimageHUI2RGB(d_buf);
    19.                                 //HAL_Delay(100);
    20.                                         //DCMI->CR |= DCMI_CR_CAPTURE;
    21.                         }
    22.                 }
    23.   }
    复制代码

    由于OV7620我用的只采灰度图像,TFT是彩屏,于是需要转换一下
    tRGB =((x >> 3)|((x & ~3) << 3)|((x & ~7) << 8));
    DCMI的功能很多,有各种功能,比如单次拍照,连续采集,全屏采集,指定区域采集,各种分配等。
    除此调试有点摸不到头脑,于是写了个简单的上位机软件配合调试。
    功能看下面串口解码函数就一目了然,上位机可以控制H7开始采集,可以将采集的数上传,也可以实时更改DCMI寄存器,这样调试就相对简单点,不用来回编译下载程序。
    1. void uart_decode(void)
    2. {
    3.         if(uart_flag)
    4.         {
    5.                 uart_flag=0;
    6.                 switch(uart_dara[2])
    7.                 {
    8.                         case 0:
    9.                                 if(uart_dara[3])
    10.                                 {
    11.                                         DCMI->CR |= DCMI_CR_CAPTURE;
    12.                                 }
    13.                         break;
    14.                         case 1:
    15.                                 if(uart_dara[3])
    16.                                 {
    17.                                         HAL_UART_Transmit(&huart3,"START",5,100);
    18.                                         HAL_UART_Transmit(&huart3,d_buf,19200,10000);
    19.                                         HAL_UART_Transmit(&huart3,"END",3,100);
    20.                                         DCMI->CR |= DCMI_CR_CAPTURE;
    21.                                 }
    22.                         break;
    23.                         case 2:
    24.                                 if(uart_dara[3])
    25.                                 {
    26.                                         DCMI->CR |= DCMI_CR_CM;
    27.                                 }
    28.                         break;
    29.                         case 3:
    30.                                 d_reg.u8[3]=uart_dara[4];
    31.                                 d_reg.u8[2]=uart_dara[5];
    32.                                 d_reg.u8[1]=uart_dara[6];
    33.                                 d_reg.u8[0]=uart_dara[7];
    34.                                 switch(uart_dara[3])
    35.                                 {
    36.                                         case 0:
    37.                                                
    38.                                         break;
    39.                                         case 1:
    40.                                                 DCMI ->CR = d_reg.u32;
    41.                                         break;
    42.                                         case 2:
    43.                                                 DCMI ->CWSIZER = d_reg.u32;
    44.                                         break;
    45.                                         case 3:
    46.                                                 DCMI ->CWSTRTR = d_reg.u32;
    47.                                         break;
    48.                                         case 4:
    49.                                                 DCMI ->ESCR = d_reg.u32;
    50.                                         break;
    51.                                         case 5:
    52.                                                 DCMI ->ESUR = d_reg.u32;
    53.                                         break;
    54.                                         case 6:
    55.                                                 DCMI ->IER = d_reg.u32;
    56.                                         break;

    57.                                 }
    58.                         break;
    59.                                
    60.                 }
    61.         }
    62. }
    复制代码

    上位机界面如下图

    采集实拍


    最后再来几张摄像头采集,TFT显示的图片。





    DCMI的功能很强大,再配上H7的超高性能,应该可以做些人工智能或者机器视觉之类的东西,本次测评程序有点简陋,简单的测试了下DCMI的功能,没有使用DMA,这肯定很影响H7的正常发挥,希望H7不要介意。
    本次测评到此结束,谢谢阅读!


    此内容由EEWORLD论坛网友supermiao123原创,如需转载或用于商业用途需征得作者同意并注明出处



    此帖出自stm32/stm8论坛


    371

    TA的帖子

    0

    TA的资源

    一粒金砂(中级)

    Rank: 2

    沙发
    发表于 2019-3-16 20:27 | 只看该作者
    厉害,请教上位机用什么编的?

    点评

    楼下说的对,labview  详情 回复 发表于 2019-3-17 17:29


    5

    TA的帖子

    0

    TA的资源

    一粒金砂(初级)

    Rank: 1

    板凳
    发表于 2019-3-16 22:17 | 只看该作者
    xunke 发表于 2019-3-16 20:27
    厉害,请教上位机用什么编的?

    LabVIEW


    6085

    TA的帖子

    9

    TA的资源

    版主

    Rank: 6Rank: 6

    4
    发表于 2019-3-16 22:56 来自手机 | 只看该作者
    这个看起来不错

    点评

    谢谢  详情 回复 发表于 2019-3-17 17:29


    550

    TA的帖子

    1

    TA的资源

    一粒金砂(高级)

    Rank: 3Rank: 3

    5
     楼主| 发表于 2019-3-17 17:29 | 只看该作者
    xunke 发表于 2019-3-16 20:27
    厉害,请教上位机用什么编的?

    楼下说的对,labview


    550

    TA的帖子

    1

    TA的资源

    一粒金砂(高级)

    Rank: 3Rank: 3

    6
     楼主| 发表于 2019-3-17 17:29 | 只看该作者

    谢谢


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

    关闭

    站长推荐上一条 /1 下一条

    • 论坛活动 E手掌握

      扫码关注
      EEWORLD 官方微信

    • EE福利  唾手可得

      扫码关注
      EE福利 唾手可得

    Archiver|手机版|小黑屋|广东十一选五开奖图 ( 京ICP证 060456 )

    GMT+8, 2019-7-23 13:48 , Processed in 0.198625 second(s), 19 queries , Gzip On, MemCache On.

    快速回复 广东十一选五开奖图 返回列表
  • 9岁女童学跳舞致双下肢截瘫 这个动作家长要警惕 2019-07-22
  • “音乐教父”罗大佑现身《朗读者》自曝曾因创作压力离台赴港 2019-07-19
  • 重磅:国民党前主席洪秀柱到访西藏提出这点希望颇有深意 2019-07-07
  • 2017大皖客户端徽派栏目全面回顾宣传片 2019-07-07
  • 传Switch即将支持媒体应用 看电影听音乐不是梦传Switch即将支持媒体应用-行情资讯 2019-07-03
  • 你就是小小文学家!“长城小作家”开始招募啦! 2019-06-24
  • 这些“专家”说得相当不靠谱,没有一个说到点子上。事实上不仅“农民没有富起来”,广大工薪阶层也“没有富起来”,其根本原因在于社会财富被个人占为私有的私有... 2019-06-24
  • 端午——网络中国节——黄河新闻网 2019-06-23
  • 【世界杯·望俄打卦】突尼斯VS英格兰,“欧洲的中国队”英格兰是否突围 2019-06-21
  • 新疆铁路端午小长假加开41列旅客列车 2019-06-21
  • 美国的本质和终极目的决定,和中国必定是始终不断战事硝烟。 2019-06-15
  • 端午将至,我们更加要严格自律,不能趁过节之际搞吃喝送礼、公车私用、公款旅游等,要严防不正之风反弹回潮。做好自己的分内之事,安分守己,加强自我管理和监督,严格遵守 2019-06-15
  • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2019-06-03
  • 尽管管理层一任一任地换,但是以每年IPO数量的多少作为反映政绩的主要标志,而对于股市下跌、市值(包括国有股)损失、经济晴雨表失真、投资者利益巨亏等等,则不在考核 2019-05-31
  • 打倒控房抄者有理,去分房好! 2019-05-26
  • 北京麻将技巧顺口溜 35选7走势图浙江风釆 排列三走势图带连线版1000 三国杀ol手机版官网 魔兽争霸3冰封王座官网 广东彩票官网 江湖龙虎门 电竞越海nph 一起来捉妖怎么才能抓到满资质的 澳洲纽卡斯尔气候 广东快乐十分开奖记录 3d试机号今晩上金码关注吗 时时彩教程视频 比特币矿池哪个最好 北京pk10公式大全图解 高频彩票刷亏损