OpenEdv-开源电子网

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

2620的行中断无法正常运行???

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-2-16
在线时间
2 小时
发表于 2017-2-16 16:15:55 | 显示全部楼层 |阅读模式
1金钱
我把我改的地方发一下,希望原子哥能解答一下,我怀疑我的2620寄存器出现了问题我在摄像头实验的基础上进行修改,修改的地方非常少
我是想把摄像头的数据通过行中断提取出来再做处理,但是在开启行中断的过程中遇到了这个问题,首先我打开了快照模式


  DCMI_InitStructure.DCMI_CaptureMode=DCMI_CaptureMode_SnapShot;//快照模式
        DCMI_InitStructure.DCMI_CaptureRate=DCMI_CaptureRate_All_Frame;//全帧捕获
        DCMI_InitStructure.DCMI_ExtendedDataMode= DCMI_ExtendedDataMode_8b;//
        DCMI_InitStructure.DCMI_HSPolarity= DCMI_HSPolarity_Low;//
        DCMI_InitStructure.DCMI_PCKPolarity= DCMI_PCKPolarity_Rising;//
        DCMI_InitStructure.DCMI_SynchroMode= DCMI_SynchroMode_Hardware;//
        DCMI_InitStructure.DCMI_VSPolarity=DCMI_VSPolarity_Low;//
        DCMI_Init(&DCMI_InitStructure);

        DCMI_ITConfig(DCMI_IT_FRAME,ENABLE);//开帧中断
        DCMI_ITConfig(DCMI_IT_LINE, ENABLE);//开行中断

然后我想知道有多少次行中断,所以定义了一个行中断位
void DCMI_IRQHandler(void)
{
        if (DCMI_GetITStatus(DCMI_IT_LINE) != RESET)  //      行中断
        {
                hangzhongduan++;                                 //行中断次数
                DCMI_ClearITPendingBit(DCMI_IT_LINE);        // 清除行中断
        }
        if(DCMI_GetITStatus(DCMI_IT_FRAME)==SET)//
        {
                jpeg_data_process();         //
                DCMI_ClearITPendingBit(DCMI_IT_FRAME);//
                LED1=!LED1;
                ov_frame++;  
        }
}

最后通过定时器3将它打印出来
void TIM3_IRQHandler(void)
{
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //
        {                                                                     
                printf("frame:%d\r\n",ov_frame);//
                printf("jpeg_data_len:%d\r\n",jpeg_data_len);//
                printf("hangzhongduan:%d\r\n",hangzhongduan);//打印行中断数
                ov_frame=0;hangzhongduan=0;
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //
}

但是结果却让我大吃一惊,行中断次数竟然产生了7189次,而且还行中断竟一直存在,在快照模式下

QQ截图20170216160455.png

X-COM显示如图

X-COM显示如图
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-2-16
在线时间
2 小时
 楼主| 发表于 2017-2-16 16:23:33 | 显示全部楼层
这是完整的程序,希望大哥大姐们能帮帮我
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-2-16
在线时间
2 小时
 楼主| 发表于 2017-2-16 18:47:58 | 显示全部楼层
.........

实验35 摄像头实验.rar

5.33 MB, 下载次数: 46

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-16 19:08:47 | 显示全部楼层
这个,没必要大惊小怪,去看OV2640的输出协议。另外,用示波器,看HS的频率,就知道了。行中断次数就是HS的频率。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-2-16
在线时间
2 小时
 楼主| 发表于 2017-2-16 22:33:16 | 显示全部楼层
正点原子 发表于 2017-2-16 19:08
这个,没必要大惊小怪,去看OV2640的输出协议。另外,用示波器,看HS的频率,就知道了。行中断次数就是HS的 ...

原子哥,是不是你这里写错了,导致我行中断不能正常运行啊
DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_High;//垂直极性
DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_High;//水平极性
你写的是低电平是有效状态
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2017-2-16
在线时间
2 小时
 楼主| 发表于 2017-2-16 23:52:51 | 显示全部楼层
妈妈咪啊 发表于 2017-2-16 22:33
原子哥,是不是你这里写错了,导致我行中断不能正常运行啊
DCMI_InitStructure.DCMI_VSPolarity = DCMI_ ...

我再想想吧,哎
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 21:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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