реклама на сайте
подробности

 
 
> STM32F4 ADC DMA ?
Allregia
сообщение Jul 22 2012, 14:14
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Помогите пожалуйста.

Хочу запустить АЦД непрерывно на оцифровку последовательно 12 каналов, чтобы складывало с массив.
Вот код.
Не могу понять - после инициализации DMA, в его регисторах все нули.
Пробовал заускать программу - в массиве тоже все нули.
Код
//volatile u16 ADCConvertedValue[12];  <- the results are here

void adc_init(void){
ADC_InitTypeDef ADC_InitStruct;
ADC_CommonInitTypeDef ADC_CommonInitStruct;
DMA_InitTypeDef DMA_InitStructure;

         // ports are already configured    
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);          // enable clocking of ADC1
         RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_DMA2,ENABLE);          // enable clocking of DMA2    
    //==Configure DMA2 - Channel0 Stream 4==
         DMA_InitStructure.DMA_Channel                  = DMA_Channel_0;  
             DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&ADC1->DR;
         DMA_InitStructure.DMA_Memory0BaseAddr     = (uint32_t) &ADCConvertedValue;
         DMA_InitStructure.DMA_DIR             = DMA_DIR_PeripheralToMemory;
         DMA_InitStructure.DMA_BufferSize         = 12;
         DMA_InitStructure.DMA_PeripheralInc             = DMA_PeripheralInc_Disable;
         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_Circular;
         DMA_InitStructure.DMA_Priority             = DMA_Priority_High;
         DMA_InitStructure.DMA_FIFOMode         = DMA_FIFOMode_Disable;        
         DMA_InitStructure.DMA_FIFOThreshold     = DMA_FIFOThreshold_HalfFull;
         DMA_InitStructure.DMA_MemoryBurst         = DMA_MemoryBurst_Single;
         DMA_InitStructure.DMA_PeripheralBurst     = DMA_PeripheralBurst_Single;
         DMA_Init(DMA2_Stream4, &DMA_InitStructure);
         DMA_Cmd( DMA2_Stream4, ENABLE);
  
// ADC:
         ADC_DeInit();     // turn ADC off

         ADC_CommonInitStruct.ADC_Mode                =ADC_Mode_Independent;
         ADC_CommonInitStruct.ADC_Prescaler            =ADC_Prescaler_Div4;
         ADC_CommonInitStruct.ADC_DMAAccessMode        =ADC_DMAAccessMode_Disabled;
         ADC_CommonInitStruct.ADC_TwoSamplingDelay            =ADC_TwoSamplingDelay_5Cycles;
         ADC_CommonInit(&ADC_CommonInitStruct);

         ADC_StructInit(&ADC_InitStruct);
         ADC_InitStruct.ADC_Resolution                =ADC_Resolution_12b;
         ADC_InitStruct.ADC_ScanConvMode            =ENABLE;
         ADC_InitStruct.ADC_ContinuousConvMode        =ENABLE;
         ADC_InitStruct.ADC_DataAlign                =ADC_DataAlign_Right;//Left;
         ADC_InitStruct.ADC_NbrOfConversion            =12;
         ADC_Init(ADC1,&ADC_InitStruct);

//----channels order
         ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1,ADC_SampleTime_480Cycles);// PC0
         ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2,ADC_SampleTime_480Cycles);// PC1
         ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3,ADC_SampleTime_480Cycles);// PC2
         ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 4,ADC_SampleTime_480Cycles);// PC3
         ADC_RegularChannelConfig(ADC1, ADC_Channel_0,   5,ADC_SampleTime_480Cycles);// PA0
         ADC_RegularChannelConfig(ADC1, ADC_Channel_1,   6,ADC_SampleTime_480Cycles);// PA1
         ADC_RegularChannelConfig(ADC1, ADC_Channel_2,   7,ADC_SampleTime_480Cycles);// PA2
         ADC_RegularChannelConfig(ADC1, ADC_Channel_3,   8,ADC_SampleTime_480Cycles);// PA3
         ADC_RegularChannelConfig(ADC1, ADC_Channel_6,   9,ADC_SampleTime_480Cycles);// PA6
         ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 10,ADC_SampleTime_480Cycles);// PA7
         ADC_RegularChannelConfig(ADC1, ADC_Channel_14,11,ADC_SampleTime_480Cycles);// PC4
         ADC_RegularChannelConfig(ADC1, ADC_Channel_15,12,ADC_SampleTime_480Cycles);// PC5
// enable ADC and DMA:
         ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);

         ADC_DMACmd(ADC1, ENABLE);        //Enable ADC1 DMA
         ADC_Cmd(ADC1, ENABLE);        //Enable ADC1

         ADC_SoftwareStartConv(ADC1);            // start ADC conversions
}
//-----------------------------

Проц stm32f407, J-Link, Keil 4.23
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   STM32F4 ADC DMA ?   Jul 22 2012, 14:14
- - Allregia   Ошибка была чисто механическая: RCC_AHB1PeriphRe...   Jul 23 2012, 07:27
|- - ViKo   Цитата(Allregia @ Jul 23 2012, 10:27) Оши...   Jul 23 2012, 07:44
|- - kan35   Цитата(ViKo @ Jul 23 2012, 11:44) А не на...   Jul 23 2012, 08:02
||- - ViKo   Цитата(kan35 @ Jul 23 2012, 11:02) Вы про...   Jul 23 2012, 08:11
|- - Allregia   Цитата(ViKo @ Jul 23 2012, 09:44) А не на...   Jul 23 2012, 10:32
- - kan35   Allregia, абсолютно правильный подход. Еще добавлю...   Jul 23 2012, 10:42
|- - ViKo   Цитата(kan35 @ Jul 23 2012, 13:42) Allreg...   Jul 23 2012, 11:15
|- - Allregia   Цитата(ViKo @ Jul 23 2012, 13:15) Так-так...   Jul 23 2012, 11:51
|- - ViKo   Цитата(Allregia @ Jul 23 2012, 14:51) Мож...   Jul 23 2012, 12:10
|- - Allregia   Цитата(ViKo @ Jul 23 2012, 14:10) А на эт...   Jul 23 2012, 12:46
|- - ViKo   Цитата(Allregia @ Jul 23 2012, 15:46) Кон...   Jul 23 2012, 12:58
- - kan35   Не преувеличивайте. Инициализация периферии занима...   Jul 23 2012, 11:47
|- - ViKo   Цитата(kan35 @ Jul 23 2012, 14:47) за иде...   Jul 23 2012, 11:49
|- - Allregia   Цитата(ViKo @ Jul 23 2012, 13:49) За нее....   Jul 23 2012, 12:34
|- - ViKo   Цитата(Allregia @ Jul 23 2012, 15:34) Сра...   Jul 23 2012, 12:37
- - kan35   ViKo, Оптимизация ради оптимизации приносит только...   Jul 23 2012, 12:48
- - kan35   Это плюс несомненно. А вообще, вы задавались вопро...   Jul 23 2012, 13:30
|- - ViKo   Цитата(kan35 @ Jul 23 2012, 16:30) Это ко...   Jul 23 2012, 19:38
|- - AlexandrY   Цитата(kan35 @ Jul 23 2012, 16:30) Это пл...   Jul 23 2012, 20:04
|- - VslavX   Цитата(AlexandrY @ Jul 23 2012, 23:04) А ...   Jul 24 2012, 03:50
|- - kan35   Цитата(AlexandrY @ Jul 24 2012, 00:04) Дл...   Jul 24 2012, 04:10
|- - demiurg_spb   Я использую библиотеки и могу сказать, что они сле...   Jul 24 2012, 06:51
- - Сергей Борщ   А почему все зациклились на инициализации? Разве б...   Jul 24 2012, 09:48
|- - demiurg_spb   Цитата(Сергей Борщ @ Jul 24 2012, 13:48) ...   Jul 24 2012, 16:16
|- - Allregia   Цитата(Сергей Борщ @ Jul 24 2012, 11:48) ...   Jul 24 2012, 17:42
|- - demiurg_spb   Цитата(Allregia @ Jul 24 2012, 21:42) Код...   Jul 24 2012, 17:47
|- - _Артём_   Цитата(demiurg_spb @ Jul 24 2012, 20:47) ...   Jul 24 2012, 18:51
||- - demiurg_spb   Тот кто привык щи лаптем хлебать того уже более пр...   Jul 24 2012, 19:05
||- - _Артём_   Цитата(demiurg_spb @ Jul 24 2012, 22:05) ...   Jul 24 2012, 19:57
||- - Allregia   Цитата(_Артём_ @ Jul 24 2012, 21:57) Да к...   Jul 25 2012, 05:24
||- - demiurg_spb   Цитата(_Артём_ @ Jul 24 2012, 23:57) Чем ...   Jul 25 2012, 05:47
||- - Allregia   Цитата(demiurg_spb @ Jul 25 2012, 07:47) ...   Jul 25 2012, 07:18
||- - ViKo   Цитата(Allregia @ Jul 25 2012, 10:18) Пом...   Jul 25 2012, 07:30
||- - Allregia   Цитата(ViKo @ Jul 25 2012, 09:30) Но, вид...   Jul 25 2012, 11:48
||- - ViKo   Цитата(Allregia @ Jul 25 2012, 14:48) 99....   Jul 25 2012, 11:57
||- - Allregia   Цитата(ViKo @ Jul 25 2012, 13:57) Верю. Д...   Jul 25 2012, 14:46
|- - Allregia   Цитата(demiurg_spb @ Jul 24 2012, 19:47) ...   Jul 24 2012, 19:42
- - kan35   ViKo, никто не отрицает, что работа через библиоте...   Jul 25 2012, 12:26
|- - ViKo   Цитата(kan35 @ Jul 25 2012, 15:26) никто ...   Jul 25 2012, 12:50
|- - kan35   Цитата(ViKo @ Jul 25 2012, 16:50) Еще нед...   Jul 26 2012, 05:52
|- - ViKo   Цитата(kan35 @ Jul 26 2012, 08:52) Viko, ...   Jul 26 2012, 07:58
- - kan35   То, что по DMA работа (пусть даже внешняя память--...   Jul 26 2012, 08:36
|- - ViKo   Цитата(kan35 @ Jul 26 2012, 11:36) То, чт...   Jul 26 2012, 08:45
- - kan35   Действитеьлно, флаг ловить лучше в прерывании. DMA...   Jul 26 2012, 08:58
|- - ViKo   Цитата(kan35 @ Jul 26 2012, 11:58) Действ...   Jul 26 2012, 10:41
- - kan35   В основной программе ждать семафора, в прерывании ...   Jul 26 2012, 12:00
- - Allregia   Вопрос немного в сторону, про М4 и настройки Кейла...   Jul 26 2012, 20:29
- - ViKo   На все ваши вопросы здесь уже были ответы. Поищите...   Jul 31 2012, 09:35
|- - Allregia   Цитата(ViKo @ Jul 31 2012, 11:35) На все ...   Aug 2 2012, 14:03
- - сарматъ   помогите пожалуйста, пытаюсь запустить ацп вот так...   Nov 19 2012, 05:34
- - сарматъ   конкретно не работает непрерывное преобразование п...   Nov 19 2012, 09:03
- - сарматъ   все равно надо каждый раз делать ADC1->CR2...   Nov 19 2012, 12:40
- - Flexz   Перепишите на обычные (regular) каналы, injected н...   Nov 19 2012, 15:28
- - сарматъ   упс... а в f100 работали... спасибо   Nov 19 2012, 15:37
- - Haamu   Необходимо измерить сигнал с нескольких каналов по...   Jan 9 2014, 08:17


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 19:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01563 секунд с 7
ELECTRONIX ©2004-2016