Задал вопрос в отдельной ветке - молчок. Буду спрашивать здесь.
Передача данных от ADC в буфер по DMA.
Код
ADC_Config(); // ADC configuration
ADC_SoftwareStartConv(ADC1); // Start ADC1 Software Conversion
while (1)
{
while(!DMA_LISR_TCIF0) continue; //ждать заполнения буфера
// обработка буфера
}
DMA в режиме Normal
Первый цикл проходит - буфер заполнился.
Смотрю RM0090 в разделе ADC 13.8.1 (перевод Google)
"Чтобы восстановить ADC из состояния OVR, когда используется DMA, выполните следующие действия:
1. Повторно инициализировать DMA (настроить адрес назначения и счетчик NDTR)
2. Очистите бит ADV OVR в регистре ADC_SR
3. Запустите АЦП, чтобы начать преобразование."
Выполнил первый пункт.
Со вторым непонятки.
Если в ADC установлен флаг CONT то флаг OVR не сбрасывается. При сбросе CONT флаг OVR может сброситься, но чаще - нет.
То же самое с флагом STRT.
Что не так делаю?