搜索
bottom↓
回复: 0

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

[复制链接]

出0入0汤圆

发表于 2018-5-11 15:21:26 | 显示全部楼层 |阅读模式
无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线路挂起位                          
}

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



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



如果看不清楚,这里看这里的的压缩文件里的图片
http://download.csdn.net/detail/chengdong1314/9471920



源码下载:
http://download.csdn.net/detail/chengdong1314/9235795


阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 02:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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