新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2018-9-26
- 在线时间
- 3 小时
|
1金钱
我的摄像头进不了中断,我找了很久也不知道是怎么回事,是正点原子的精英版开发板和ov7725摄像头,我不想用LCD,所以把程序改了一下,利用数组储存像素点,判断是我所需要的则储存为1,不是则储存为0。现在的问题就是,好像程序读取不了中断信息,也就是PA8口的下降沿,后面的颜色识别之类的东西都进行不了了,有大佬可以给我看一下程序吗?下面是我的扫描读取程序和中断程序 。
void camera_refresh3(void)
{
COLOR_RGB color_rgb;
u16 i,j;
u16 color;
unsigned char sum;
if(ov_sta==2)
{
OV7725_CS=0;
OV7725_RRST=0;
OV7725_RCK_L;
OV7725_RCK_H;
OV7725_RCK_L;
OV7725_RRST=1;
OV7725_RCK_H;
for(i=0;i<240;i++)
{
for(j=0;j<320;j++)
{
GPIOB->CRL=0X88888888;
OV7725_RCK_L;
color=GPIOC->IDR&0XFF; //
OV7725_RCK_H;
color<<=8;
OV7725_RCK_L;
color|=GPIOC->IDR&0XFF; //
OV7725_RCK_H;
GPIOB->CRL=0X33333333;
ex(color,&color_rgb);
sum++;
if(sum==4)
{
if((color_rgb.Red<=255)&(color_rgb.Red>240))xs[j/4]=1;
else xs[j/4]=0;
}
}
}
OV7725_CS=1;
OV7725_RCK_L;
OV7725_RCK_H;
EXTI->PR=1<<15;
ov_sta=0;
}
}
void EXTI8_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA,ENABLE);//ía2¿ÖD¶Ï£¬Dèòaê1ÄüAFIOoíGPIOAê±Öó
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //1رÕJTAG,ê1ÄüSWD
OV7725_Init();
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; //ê1Äü°′¼üËùÔúμÄía2¿ÖD¶Ïí¨μà
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //ÇàÕ¼óÅÏè¼¶0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //×óóÅÏè¼¶0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //ê1Äüía2¿ÖD¶Ïí¨μà
NVIC_Init(&NVIC_InitStructure); //¸ù¾YNVIC_InitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉíaéèNVIC¼Ä′æÆ÷
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource8);
EXTI_InitStructure.EXTI_Line=EXTI_Line8;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//ϽμÑØ′¥·¢
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure); //¸ù¾YEXTI_InitStructÖDÖ¸¶¨μÄ2Îêy3õê¼»ˉíaéèEXTI¼Ä′æÆ÷
}
void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line8)==SET)
{
if(ov_sta<2)
{
if(ov_sta==0)
{
OV7725_WRST=0; //¸′λD′Ö¸Õë
OV7725_WRST=1;
OV7725_WREN=1; //ÔêDíD′èëFIFO
}else OV7725_WREN=0; //½ûÖ1D′èëFIFO
ov_sta++;
}
}
EXTI_ClearITPendingBit(EXTI_Line8); //Çå3yLINE8éÏμÄÖD¶Ï±ê־λ
}
|
|