全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)

无FIFO摄像头 DMA传送优化:
原来虽说是DMA传输,但是那是定时器定时触发DMA的,并不是根据摄像头的引脚信号触发的DMA,存在很多的不合理性,这次的程序是用摄像头PCLK引脚来触发DMA。
STM32F103的缺陷:
1.定时器没有回溯清除DMA请求标志的功能,也就是说要启用一个定时器触发中断,在该中断里清除自己的状态位,好让下次的DMA再次请求,
//定时器1触发中断服务程序     
void TIM1_TRG_COM_IRQHandler(void)
{     
    TIM_ClearITPendingBit(TIM1, TIM_IT_Trigger);  //清除TIMx的中断待处理位:TIM 中断源   
}
2.FSMC没有的LCD没有DMA请求标志,而DMA_Mode_Circular模式每次的DMA传输就是一行的数据,但是最无奈的是LCD外设的速度远远跟不上DMA的速度,造成不能够用DMA把数据直接拷贝到LCD,这是十分坑爹的,十分,十分的无奈!!!!!!!!!
最后只能够在一行的像素数据采集完之后,用for循环把数据放到LCD里!这个有点偏离两个DMA的初衷,十分的无奈,DMA完成中断:
extern u8 Row[640];
void DMA1_Channel4_IRQHandler(void)
{
    u16 j;
    u16 color;
    DMA_ClearITPendingBit(DMA1_IT_GL4);
    for(j=0;j<320;j++)
    {
            color=Row[j*2];
            color<<=8;
            color|=Row[j*2+1];
            LCD->LCD_RAM=color;
    }
}
为了保证屏幕不会出现双屏现象,在行中断里归零LCD坐标:
//外部中断4服务程序  即场同步信号HREF中断
void EXTI4_IRQHandler(void)
{            
    if(EXTI_GetITStatus(EXTI_Line4)!=RESET)//是3线的中断
    {   
          LCD_Scan_Dir(U2D_L2R);        //从上到下,从左到右
            LCD_SetCursor(0x00,0x0000);    //设置光标位置
            LCD_WriteRAM_Prepare();     //开始写入GRAM   
          LED0=!LED0;
    }
    EXTI_ClearITPendingBit(EXTI_Line4);  //清除EXTI6线路挂起位                          
}
每次DMA传送一行数据,所以在行中断里重新使能DMA:
//外部中断3服务程序  即行同步信号HREF中断
void EXTI3_IRQHandler(void)
{            
    if(EXTI_GetITStatus(EXTI_Line3)!=RESET)//是3线的中断
    {   
    MYDMA_Enable(DMA1_Channel3);            //TIM3的UPDATE对应DMA的通道3   开始一次DMA传输
    }
    EXTI_ClearITPendingBit(EXTI_Line3);  //清除EXTI6线路挂起位                          
}

有图有真相,下面是本实验的图片:

全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第1张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第2张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第3张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第4张图片


2016-03-24:

由于有网友反映不知道硬件连接怎么连,这里将我写在书上的笔记上传上来,这里再次说明用的开发板是原子公司的战舰开发板,这里将上传图片,怎么连接请大家仔细琢磨,如有疑问,请邮箱联系,QQ邮箱:[email protected]    这里感谢网友关注。


全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第5张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第6张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第7张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第8张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第9张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第10张图片全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)_第11张图片

如果看不清楚,这里看这里的的压缩文件里的图片

http://download.csdn.net/detail/chengdong1314/9471920



源码下载:

http://download.csdn.net/detail/chengdong1314/9235795

你可能感兴趣的:(智能车和一些小项目)