智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1093|回复: 3
打印 上一主题 下一主题

捕食者程序问题

[复制链接]

5

主题

56

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1616
威望
839
贡献
523
兑换币
503
注册时间
2015-7-19
在线时间
127 小时
毕业学校
湖北民族学院
跳转到指定楼层
1#
发表于 2016-6-4 12:39:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
捕食者摄像头的初始化:D12-PCLK   D15-FOOD(奇数场中断)   D13-HREF   Y0-Y7---E0-E7void camera_Init()
{
    DMA_InitTypeDef DMA_InitStruct1 ;
    DMA_InitStruct1.chl = HW_DMA_CH2;
    DMA_InitStruct1.chlTriggerSource = PORTD_DMAREQ;//选取触发源
    DMA_InitStruct1.triggerSourceMode = kDMA_TriggerSource_Normal;
    DMA_InitStruct1.minorLoopByteCnt = 1;//没次传输一个字节
    DMA_InitStruct1.majorLoopCnt = OV7725_H;

    DMA_InitStruct1.sAddr =(uint32_t)&PTE->PDIR;
    DMA_InitStruct1.sLastAddrAdj = 0;
    DMA_InitStruct1.sAddrOffset = 0;
    DMA_InitStruct1.sDataWidth = kDMA_DataWidthBit_8;
    DMA_InitStruct1.sMod = kDMA_ModuloDisable;

    DMA_InitStruct1.dAddr = (uint32_t)&buffdata[0];
    DMA_InitStruct1.dLastAddrAdj = 0;
    DMA_InitStruct1.dAddrOffset = 1;
    DMA_InitStruct1.dDataWidth = kDMA_DataWidthBit_8;
    DMA_InitStruct1.dMod = kDMA_ModuloDisable;
    DMA_Init(&DMA_InitStruct1);
    //场中断
    GPIO_QuickInit(HW_GPIOD,15,kGPIO_Mode_IPU);
    //行中断
    GPIO_QuickInit(HW_GPIOD,13,kGPIO_Mode_IPU);
    //时钟
    GPIO_QuickInit(HW_GPIOD,12,kGPIO_Mode_IPU);
     /* 设置GPIO外部引脚中断回调函数 */
    GPIO_CallbackInstall(HW_GPIOD, GPIO_ISR);
    /* 打开PTD引脚的中断 上升沿触发 */
    GPIO_ITDMAConfig(HW_GPIOD, 15,  kGPIO_IT_FallingEdge, true);//下降沿触发
    GPIO_ITDMAConfig(HW_GPIOD, 12,  kGPIO_DMA_RisingEdge,true);


    //数据输入端配置
    GPIO_QuickInit(HW_GPIOE,0,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,1,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,2,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,3,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,4,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,5,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,6,kGPIO_Mode_IPU);
    GPIO_QuickInit(HW_GPIOE,7,kGPIO_Mode_IPU);   
}
中断函数:DMA将数据传到buffdata里
static void GPIO_ISR(uint32_t array)

{
    if(array&(1<<13))//行中断触发
    {
         GPIO_ITDMAConfig(HW_GPIOD, 13, kGPIO_IT_FallingEdge, false);

       if(line >= OV7725_W)
       {
        DMA_Over_flg=1;      
       }   
       else
       {
          DMA_SetDestAddress(HW_DMA_CH2,(uint32_t)buffdata[line++]);
         DMA_SetMajorLoopCounter(HW_DMA_CH2, OV7725_H);
       /* 启动传输 */
       DMA_EnableRequest(HW_DMA_CH2);
       }
        GPIO_ITDMAConfig(HW_GPIOD, 13, kGPIO_IT_FallingEdge, true);            
    }   
    if(array&(1<<15))
    {
        GPIO_ITDMAConfig(HW_GPIOD, 13, kGPIO_IT_FallingEdge, false);
        GPIO_ITDMAConfig(HW_GPIOD, 15, kGPIO_IT_FallingEdge, false);
       line=0;
       GPIO_ITDMAConfig(HW_GPIOD, 13, kGPIO_IT_FallingEdge, true);
       GPIO_ITDMAConfig(HW_GPIOD, 15, kGPIO_IT_FallingEdge, true);   
    }

}


问题是DMA没有工作,我仿真看PE的PDIR是有数据的,而且数据是对的,就是DMA没有将数据传到bufdata中
回复

使用道具 举报

5

主题

56

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1616
威望
839
贡献
523
兑换币
503
注册时间
2015-7-19
在线时间
127 小时
毕业学校
湖北民族学院
2#
 楼主| 发表于 2016-6-4 12:40:48 | 只看该作者
求大神给看看啊!我们这学校是第一届,根本没人指导   真是要哭了:'(:'(
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
141
威望
82
贡献
37
兑换币
42
注册时间
2016-6-7
在线时间
11 小时
毕业学校
苏州大学
3#
发表于 2016-6-15 23:44:33 | 只看该作者
我也是用的超核的库,我之前和你问题一样,后来把 数据输入的 io 改成 浮空输入 就有数据了
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
威望
198
贡献
88
兑换币
73
注册时间
2016-5-4
在线时间
22 小时
毕业学校
西北工业大学
4#
发表于 2016-6-24 21:49:51 | 只看该作者
引脚设置有问题,
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-2 12:31 , Processed in 0.045240 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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