中级会员
 
- 积分
- 303
- 金钱
- 303
- 注册时间
- 2014-1-1
- 在线时间
- 254 小时
|
1金钱
启动FMSC 用DMA突发模式 配置如下,帮看看,哪埯问题 主要是下面三个不知道怎么用配置
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; //ͬÉÏ
DMA_InitStructure.DMA_MemoryBurst = DMA_PeripheralBurst_INC16; // Ä¿±êÄÚ´æ16½ÚÅÄÍ»·¢ÔöÁ¿
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_INC16; // Ô´ÄÚ´æ16½ÚÅÄÍ»·¢ÔöÁ¿
//////////////////////
NVIC_InitTypeDef NVIC_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
/* ¸´Î»DMA*/
DMA_DeInit(DMA2_Stream0);
/* È·¶¨DMA¸´Î»Íê³É¸´Î»*/
while (DMA_GetCmdStatus(DMA2_Stream0) != DISABLE) { }
/* Enable ADC3, DMA and GPIO clocks ****************************************/
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);
NVIC_InitStructure.NVIC_IRQChannel= DMA2_Stream0_IRQn;//TIM2_IRQn; //
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
/* DMA2 Stream0 channel2 configuration **************************************/
DMA_InitStructure.DMA_Channel = DMA_Channel_0; //ͨµÀÑ¡Ôñ
// DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)ûдFMSCÄÚ´æµØÖ·; //Ô´ÄÚ´æ»ùµØÖ·
DMA_InitStructure.DMA_Memory0BaseAddr = (u32)DmaBuffere[0]; //Ä¿±êÊ×µØÖ·
DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToMemory; //ÄÚ´æTOÄÚ´æ
DMA_InitStructure.DMA_BufferSize = RHEOSTAT_NOFCHANEL*2; //Êý¾Ý´óС
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //Ô´µØÖ·²»µÝÔö
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //Ä¿±êµØÖ·µÝ¼Ó
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; //Ô´ÄÚ´æ8λ
DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_Byte; //Ä¿±êÄÚ´æ8λ
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; //ͬÉÏ
DMA_InitStructure.DMA_MemoryBurst = DMA_PeripheralBurst_INC16; // Ä¿±êÄÚ´æ16½ÚÅÄÍ»·¢ÔöÁ¿
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_INC16; // Ô´ÄÚ´æ16½ÚÅÄÍ»·¢ÔöÁ¿
DMA_Init(DMA2_Stream0, &DMA_InitStructure);
DMA_ClearITPendingBit(DMA2_Stream0,DMA_IT_TCIF0);//DMA_IT_HTIF0
DMA_ClearITPendingBit(DMA2_Stream0,DMA_IT_HTIF0);
//DMA_ITConfig(DMA2_Stream0,DMA_IT_TC, ENABLE);
DMA_ITConfig(DMA2_Stream0, DMA_IT_HT, ENABLE);
DMA_Cmd(DMA2_Stream0, ENABLE);
|
|