We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi guys,
i have a problem about selection of DMA1 channels. i'm using an example application. and i did some changes on it. Application uses DMA1_Channel3. i have changed channel as DMA1_Channel1. But compiler give this error message:
..\source\main.c(112): error: #20: identifier "DMA1_Channel1" is undefined
if i use DMA1_Channel3, there is no problem. i opened _map.h and i comfirmed that DMA1_Channel1 and DMA1_Channel3 are defined.
my DMA code is here:
DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)bellek1; DMA_InitStructure.DMA_MemoryBaseAddr = (u32)bellek2; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 512; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStructure.DMA_M2M = DMA_M2M_Enable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); //DMA_ITConfig(DMA1_Channel1, DMA_IT_TC | DMA_IT_HT | DMA_IT_TE, ENABLE); DMA_Cmd(DMA1_Channel1, ENABLE); </pre| please help me. best regards
But, clearly, that definition is not visible to the compiler at line 112 of ..\source\main.c !!
Is that header #included by your ..\source\main.c ?
Is the definition active? (ie, not disabled by some #if...)
thanks for your comments. my chip is STM32f103ZET6. you can see my a bit of map.h here
#ifdef _DMA1_Channel1 #define DMA1_Channel1 ((DMA_Channel_TypeDef *) DMA1_Channel1_BASE) #endif /*_DMA1_Channel1 */ #ifdef _DMA1_Channel2 #define DMA1_Channel2 ((DMA_Channel_TypeDef *) DMA1_Channel2_BASE) #endif /*_DMA1_Channel2 */ #ifdef _DMA1_Channel3 #define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) #endif /*_DMA1_Channel3 */ #ifdef _DMA1_Channel4 #define DMA1_Channel4 ((DMA_Channel_TypeDef *) DMA1_Channel4_BASE) #endif /*_DMA1_Channel4 */ * * *
when i use DMA1_channel3 and close the code part in map.h as you can see below, i receive same error message for DMA1_channel3:
/*#ifdef _DMA1_Channel3 #define DMA1_Channel3 ((DMA_Channel_TypeDef *) DMA1_Channel3_BASE) #endif*/
i think, it shows that i included it there is no problem. i'm using dma for fsmc for LCD driving. i'm confused :(
hello all,
i found the problem. i channged conf.h. some definations was closed. i opened them after then everting is ok:) thanks