OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5684|回复: 2

407开发板照相实验问题咨询

[复制链接]

92

主题

171

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2015-9-22
在线时间
102 小时
发表于 2016-1-5 17:32:46 | 显示全部楼层 |阅读模式
1金钱
     407开发板照相机实验章节//OV2640拍照jpg图片
//返回值:0,成功
//    其他,错误代码

函数:
u8 ov2640_jpg_photo(u8 *pname)
{
.....
DCMI_DMA_Init((u32)jpeg_buf0,(u32)jpeg_buf1,jpeg_dma_bufsize,DMA_MemoryDataSize_Word,DMA_MemoryInc_Enable);//DCMI DMA配置(双缓冲模式)
.....
}


DCMI_DMA_Init()函数调用了:
[mw_shl_code=c,true]void DCMI_DMA_Init(u32 DMA_Memory0BaseAddr,u32 DMA_Memory1BaseAddr,u16 DMA_BufferSize,u32 DMA_MemoryDataSize,u32 DMA_MemoryInc)
{
.......
       
  /* 配置 DMA Stream */
  DMA_InitStructure.DMA_Channel = DMA_Channel_1;  //通道1 DCMI通道
  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&DCMI->DR;//外设地址为CMI->DR
  DMA_InitStructure.DMA_Memory0BaseAddr = DMA_Memory0BaseAddr;//DMA 存储器0地址

  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;//外设到存储器模式
  DMA_InitStructure.DMA_BufferSize = DMA_BufferSize;//数据传输量
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设非增量模式
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc;//存储器增量模式
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;//外设数据长度:32位
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize;//存储器数据长度
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;// 使用循环模式
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;//高优先级
  DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; //FIFO模式        
  DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;//使用全FIFO
  DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;//外设突发单次传输
  DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;//存储器突发单次传输
  DMA_Init(DMA2_Stream1, &DMA_InitStructure);//初始化DMA Stream
               
        if(DMA_Memory1BaseAddr)
  {
                DMA_DoubleBufferModeCmd(DMA2_Stream1,ENABLE);//双缓冲模式
          DMA_MemoryTargetConfig(DMA2_Stream1,DMA_Memory1BaseAddr,DMA_Memory_1);//配置目标地址1
                DMA_ITConfig(DMA2_Stream1,DMA_IT_TC,ENABLE);//开启传输完成中断
.........
        }
               
       
}

[/mw_shl_code]

DMA_MemoryTargetConfig(DMA2_Stream1,DMA_Memory1BaseAddr,DMA_Memory_1);//配置目标地址1


这里的DMA_Memory_1的宏定义为
#define DMA_Memory_1                      ((uint32_t)0x00080000)


照相机JPAG图形采集实验数据是从相机到外部SRAM,然后再拷贝到SD卡,为什么这里DMA_Memory_1不是外部SRAM地址,而是0x00080000?请教下,谢谢



最佳答案

查看完整内容[请看2#楼]

这个例程,我们是存在内部sram的.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-1-5 17:32:47 | 显示全部楼层
这个例程,我们是存在内部sram的.
回复

使用道具 举报

92

主题

171

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2015-9-22
在线时间
102 小时
 楼主| 发表于 2016-1-13 15:49:02 | 显示全部楼层
正点原子 发表于 2016-1-5 17:32
这个例程,我们是存在内部sram的.

谢谢,是我代码没看仔细
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 00:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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