OpenEdv-开源电子网

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

求助,我用的板子是STM32F407VET6,DCMI寄存器配置成功了,但是毫无反应

[复制链接]

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1402
注册时间
2017-1-18
在线时间
10 小时
发表于 2017-1-18 08:39:00 | 显示全部楼层 |阅读模式
12金钱
本帖最后由 lovebaib 于 2017-1-19 13:48 编辑

      昨天尝试了DCMI,根据手册和正点原子大大的例程写了一个DCMI配置驱动OV7725摄像头,硬件仿真的时候一直进不去DCMI的中断(PS:我把所有中断都开了),察看DCMI的配置寄存器,发现确实写入了值(正确的值),但是运行的时候DCMI->MISR寄存器一直为0,根本不变,DCMI->DR也一样,摄像头初始化能通过,VSYNC引脚也在跳变(在仿真时和示波器都确定了)。怀疑是引脚复用没通过,改了好多次都不行,请大家帮帮忙,原子哥求助
      以下是主要代码:
        
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOE, ENABLE);//ê1ÄüGPIOA B C E ê±Öó
        RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_DCMI,ENABLE);//ê1ÄüDCMIê±Öó

        //PA4/63õê¼»ˉéèÖÃ
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_6;//PA4/6   ¸′óÃ1|Äüêä3ö
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //¸′óÃ1|Äüêä3ö
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//íÆíìêä3ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//éÏà-
        
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource4,GPIO_AF_DCMI); //PA4,AF13  DCMI_HSYNC
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_DCMI); //PA6,AF13  DCMI_PCLK
        
  GPIO_Init(GPIOA, &GPIO_InitStructure);//3õê¼»ˉ
        
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;// PB6/7   ¸′óÃ1|Äüêä3ö
        
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_DCMI); //PB7,AF13  DCMI_VSYNC
        GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_DCMI); //PB6,AF13  DCMI_D5
        
  GPIO_Init(GPIOB, &GPIO_InitStructure);//3õê¼»ˉ
        
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_11;//PC6/7/8/9/11 ¸′óÃ1|Äüêä3ö
        
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_DCMI); //PC6,AF13  DCMI_D0  
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_DCMI); //PC7,AF13  DCMI_D1
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource8,GPIO_AF_DCMI); //PC8,AF13  DCMI_D2
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource9,GPIO_AF_DCMI); //PC9,AF13  DCMI_D3
        GPIO_PinAFConfig(GPIOC,GPIO_PinSource11,GPIO_AF_DCMI);//PC11,AF13 DCMI_D4
        
  GPIO_Init(GPIOC, &GPIO_InitStructure);//3õê¼»ˉ        

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;//PE5/6  ¸′óÃ1|Äüêä3ö
        
        GPIO_PinAFConfig(GPIOE,GPIO_PinSource5,GPIO_AF_DCMI); //PE5,AF13  DCMI_D6
        GPIO_PinAFConfig(GPIOE,GPIO_PinSource6,GPIO_AF_DCMI); //PE6,AF13  DCMI_D7
        
  GPIO_Init(GPIOE, &GPIO_InitStructure);//3õê¼»ˉ        
        
        DCMI_DeInit();
        
        DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous;
        DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hardware;
        DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling;
        DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_Low;
        DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_Low;
        DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_All_Frame;
        DCMI_InitStructure.DCMI_ExtendedDataMode = DCMI_ExtendedDataMode_8b;  
        
        DCMI_ITConfig(DCMI_IT_OVF,ENABLE);
        DCMI_ITConfig(DCMI_IT_ERR,ENABLE);
        DCMI_ITConfig(DCMI_IT_VSYNC,ENABLE);
        DCMI_ITConfig(DCMI_IT_LINE,ENABLE);
        DCMI_ITConfig(DCMI_IT_FRAME,ENABLE);//¿aÆôÖ¡ÖD¶Ï
        
        NVIC_InitStructure.NVIC_IRQChannel = DCMI_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//ÇàÕ¼óÅÏ輶1
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =2;                //×óóÅÏ輶3
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                        //IRQí¨μàê1Äü
        NVIC_Init(&NVIC_InitStructure);        //¸ù¾YÖ¸¶¨μÄ2Îêy3õê¼»ˉVIC¼Ä′æÆ÷¡¢
        
        DCMI_Init(&DCMI_InitStructure);
        
        DCMI_Cmd(ENABLE);        //DCMIê1Äü

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1402
注册时间
2017-1-18
在线时间
10 小时
 楼主| 发表于 2017-1-18 09:12:50 | 显示全部楼层
本帖最后由 lovebaib 于 2017-1-19 12:59 编辑

DCMI->RISI 一直不置位(偏移地址0x08 对应手册上的RIS)   DCMI->IER寄存器数值正常(设置为0x1F)  DCMI->CR寄存器值为0x4001(使能和中断都已经开启,VSYNC低电平有效,HREF低电平有效,PCLK下降沿捕获)  用的摄像头是OV7725
回复

使用道具 举报

15

主题

180

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2017-1-18
在线时间
23 小时
发表于 2017-1-18 20:14:47 | 显示全部楼层
我也试过,很奇怪哦,小白一枚,也求解答
每天都要干一点!!!
我就是程序猿!!!
写呀写,砸呀砸!
风继续吹,吹呀吹!
回复

使用道具 举报

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1402
注册时间
2017-1-18
在线时间
10 小时
 楼主| 发表于 2017-1-18 20:42:30 | 显示全部楼层
红萝卜的蔬菜汤 发表于 2017-1-18 20:14
我也试过,很奇怪哦,小白一枚,也求解答

明明看着都正常,就是不工作,真着急
回复

使用道具 举报

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1402
注册时间
2017-1-18
在线时间
10 小时
 楼主| 发表于 2017-1-19 13:06:49 | 显示全部楼层
求助,求助,求组,求组!!!@正点原子@正点原子
回复

使用道具 举报

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1402
注册时间
2017-1-18
在线时间
10 小时
 楼主| 发表于 2017-1-20 14:10:14 | 显示全部楼层
经查看ARF寄存器和DCMI寄存器,配置正常,外部引脚有输出,使用的是STM32F407VET6,其他部分工作正常(包括定时器、PID、OV7725摄像头),还可能是什么原因?只有硬件仿真的时候,修改DCMI寄存器值的时候会进入一次中断(就会进入一次),纠结@ 正点原子
回复

使用道具 举报

9

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
337
金钱
337
注册时间
2016-4-15
在线时间
126 小时
发表于 2017-2-13 11:34:39 | 显示全部楼层
楼主解决没有?帮顶
回复

使用道具 举报

2

主题

15

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1402
金钱
1402
注册时间
2017-1-18
在线时间
10 小时
 楼主| 发表于 2017-2-13 21:09:38 来自手机 | 显示全部楼层
还没有啊,又买了一块板子,配置都对,不知道是哪里的问题,就是不进入中断
回复

使用道具 举报

9

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-9-27
在线时间
23 小时
发表于 2017-2-13 23:00:11 | 显示全部楼层
你有没有对一下引脚复用和芯片手册呀
生死看淡,低头猛干
回复

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2018-7-26
在线时间
5 小时
发表于 2017-3-20 23:14:43 | 显示全部楼层
我也出现过,建议看看数据手册的有效电平状态是什么电平。我的摄像头的有行场有效电平是 相反的。
回复

使用道具 举报

16

主题

139

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1296
金钱
1296
注册时间
2016-10-18
在线时间
210 小时
发表于 2017-4-29 21:02:37 | 显示全部楼层
楼主解决了吗 我场中断能进去 但是读出来的值都是0
回复

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2017-7-25
在线时间
8 小时
发表于 2017-8-5 16:53:53 | 显示全部楼层
我也是不会进入场中断。。。端口明明有电平变化,示波器确认了
回复

使用道具 举报

4

主题

34

帖子

1

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2015-9-22
在线时间
57 小时
发表于 2017-8-6 14:14:59 | 显示全部楼层
遇到同样问题,请问是如何解决的?QQ 273744983 谢谢
回复

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2019-4-29
在线时间
22 小时
发表于 2020-4-14 16:55:29 | 显示全部楼层
请问解决了吗,我也遇到了DR寄存器全为0的情况,能麻烦告诉下你的解决办法吗

回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
发表于 2022-10-1 17:07:17 | 显示全部楼层
zejack 发表于 2020-4-14 16:55
请问解决了吗,我也遇到了DR寄存器全为0的情况,能麻烦告诉下你的解决办法吗

我也遇到了DR寄存器全为0的情况,能麻烦告诉下你的解决办法吗
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
发表于 2022-10-1 17:07:42 | 显示全部楼层
我也遇到了DR寄存器全为0的情况,能麻烦告诉下你的解决办法吗
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
发表于 2022-10-1 17:08:04 | 显示全部楼层
faiz 发表于 2017-4-29 21:02
楼主解决了吗 我场中断能进去 但是读出来的值都是0

我也遇到了DR寄存器全为0的情况,能麻烦告诉下你的解决办法吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 02:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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