新手入门
- 积分
- 16
- 金钱
- 16
- 注册时间
- 2017-2-16
- 在线时间
- 2 小时
|
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次,而且还行中断竟一直存在,在快照模式下
|
-
-
X-COM显示如图
|