Почему не работает dma

HAL_ADC_Start_DMA(); и HAL_UART_Transmit_DMA(); не работают вместе

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не работают вместе 4 планки DDR2. По 3 в любых комбинациях работают
Добрый день. Каждая из планок проверена мемтестом, все хорошо. Кроме того, 1. все модули по.

Компоненты компа работают по отдельности, но не работают вместе 😀
Всем доброго времени суток. Собрал я комп: БП 650W мамка gigabyte b75m-d3h VGA: nvidia gforce.

Не работают вместе 2 скрипта вместе
Добрый день! подскажите как заставить работать эти 2 скрипта вместе? Работают только по отдельности.

Не работают вместе..
Я пишу программу — игрушку «Виселица». Из файла открываю словарь и рандомно выбираю одно из слов.

Решение

Чего? Вы стандартные события заполнения половины/всего буфера называете переполнением?

От размера буфера не зависит?

Не работают вместе 4 планки
Asus Prime B350-PLUS, Ryzen 5 1600. Помогите, пожалуйста. 2 по 4 гб работают отлично на 2666.

Планки не работают вместе
Всем привет. Недавно подарили две планки по 2гб, до этого были 2 планки по 1 гб. Вместе они не.

Планки не работают вместе
Доброго времени суток всем. Возникла проблема когда решил поставить новую планку оперативки. До.

Коллизия и тригер не работают вместе
Всем привет. Не понимаю как решить проблему. Посоветовал парень с хорошим методом. .

2 планки озу не работают вместе
Здравствуйте, 2 года назад покупал материнскую плату asRock h61m-gs, сегодня вставляю вторую.

Псевдоклассы :valid и :after вместе не работают
Проверка заполнения формы регистрации. Псевдоклассы :valid и :after в отдельности работают, вместе.

Источник

Почему не работает dma

APB1ENR |= RCC_APB1ENR_DACEN; // включить тактирование ЦАПа
DAC->CR |= DAC_CR_BOFF1; // отключить выходной буфер
DAC->CR |= DAC_CR_EN1; // включить канал №1

Читайте также:  Проактивный фильтр не работает для групп пользователей битрикс

//Настроить третий канал ДМА для перемещения данных из буфера
//в промежуточный регистр данных первого канала ЦАПа:
RCC->AHBENR |= RCC_AHBENR_DMA2EN; //тактирование DMA

DMA2_Channel3->CPAR = (uint32_t)&DAC->DHR8R1; //указатель на регистр периферии
DMA2_Channel3->CMAR = (uint32_t)&DAC_Buff[0]; //указатель на начало буфера в памяти
DMA2_Channel3->CCR |= DMA_CCR3_DIR; //направление передачи — из памяти в периферию
DMA2_Channel3->CNDTR = 512; //размер буфера
DMA2_Channel3->CCR &=

DMA_CCR3_PINC; //адрес периферии не инкрементируем
DMA2_Channel3->CCR |= DMA_CCR3_MINC; //адрес памяти инкрементируем
DMA2_Channel3->CCR &=

DMA_CCR3_PSIZE; //размерность данных периферии — 8 бит.
DMA2_Channel3->CCR &=

DMA_CCR3_MSIZE; //размерность данных памяти — 8 бит
DMA2_Channel3->CCR |= DMA_CCR3_CIRC; //включить циклический режим передачи данных
DMA2_Channel3->CCR |= DMA_CCR3_PL; //приоритет
DMA2_Channel3->CCR |= DMA_CCR3_EN; //разрешаем работу третьего канала DMA

//Запуск передачи очередного значения через ДМА будет происходить от TIM6
RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; //подаем тактирование TIM6
TIM6->PSC = 0; //Задаем частоту дискретизации 44100

TIM6->DIER |= TIM_DIER_UDE; //разрешить запрос DMA
>

void wave_playback(const char *FileName)
<
uint32_t samples;

f_open( &file, FileName, FA_READ ); //открыть файл FileName для чтения

f_lseek(&file, 0x1C); //переместить указатель на начало полезных данных

f_read (&file, &samples, 4, &cnt); //прочитать количество семплов

f_read (&file, &DAC_Buff[0], 512, &cnt); //загрузить буфер ЦАПа данными

TIM6->ARR = 72000000/samples;
TIM6->CR1 |= TIM_CR1_CEN;

/* воспроизведение */
while(1)
<
while(!(DMA2->ISR & DMA_ISR_HTIF3)) <> //ждем освобождение первой части буфера

DMA2->IFCR |= DMA_ISR_HTIF3; //сбросить флаг

if(cnt ISR & DMA_ISR_TCIF3)) <> //ждем освобождение второй части буфера

DMA2->IFCR |= DMA_ISR_TCIF3; //сбросить флаг

Но так тратится слишком много времени на ожидание установки флагов. МК по сути «висит» до конца воспроизведения. Поэтому решил сделать через прерывания от DMA. Добавил строки:

DMA2_Channel3->CCR |= DMA_CCR3_HTIE;
DMA2_Channel3->CCR |= DMA_CCR3_TCIE;

и саму функцию:
void DMA2_Channel3_IRQHandler(void)

В итоге в функцию void DMA2_Channel3_IRQHandler(void) не входит. А может и генерируются, но флаги TCIF3 и HTIF3 не выставляются. Где тут может быть ошибка?

Читайте также:  Как начисляют алименты если ответчик не работает

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию.

Реклама
amv2000
Вымогатель припоя

Карма: 5
Рейтинг сообщений: 42
Зарегистрирован: Вт апр 26, 2011 13:58:36
Сообщений: 662
Откуда: Ростовская область
Рейтинг сообщения: 0

Реклама

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

КАШАК
Сверлит текстолит когтями

Карма: 6
Рейтинг сообщений: 65
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1229
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию.

Реклама

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

КАШАК
Сверлит текстолит когтями

Карма: 6
Рейтинг сообщений: 65
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1229
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0

Самое интересное то, что от других каналов DMA прерывания приходят, от TIM6 тоже, а именно от 3 канала второго DMA не хотят. Пока сделал через прерывания таймера:

DMA2->IFCR |= DMA_ISR_HTIF3; //сбросить флаг

DMA_CCR3_EN; //если конец файла

TIM_CR1_CEN; //остановить преобразование

DMA2->IFCR |= DMA_ISR_TCIF3; //сбросить флаг

DMA_CCR3_EN; //если конец файла

TIM_CR1_CEN; //остановить преобразование

Но все же интересно, почему от DMA не идут прерывания.

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию.

Реклама

Connfly, один из ведущих азиатских производителей стандартных соединителей, и Компэл в рамках партнерской программы по развитию склада представляют установочные панели для микросхем. Панельки серии DS1001-01 выполнены в корпусе Dual In-Line и предназначены для многократного размещения и подключения DIP-интегральных схем в электронные устройства.

amv2000
Вымогатель припоя

Карма: 5
Рейтинг сообщений: 42
Зарегистрирован: Вт апр 26, 2011 13:58:36
Сообщений: 662
Откуда: Ростовская область
Рейтинг сообщения: 0

Последний раз редактировалось amv2000 Ср авг 14, 2013 14:03:57, всего редактировалось 1 раз.

Реклама
Реклама

Компэл 28 октября приглашает всех желающих принять участие в вебинаре, где будет рассмотрена новая и перспективная продукция компании Traco. Мы подробно рассмотрим сильные стороны и преимущества продукции Traco, а также коснемся практических вопросов, связанных с измерением уровня шумов, промывкой изделий после пайки и отдельно разберем, как отличить поддельный ИП Traco от оригинала.

КАШАК
Сверлит текстолит когтями

Карма: 6
Рейтинг сообщений: 65
Зарегистрирован: Вс апр 19, 2009 17:20:22
Сообщений: 1229
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Рейтинг сообщения: 0

_________________
Опыт растет прямо пропорционально выведенному из строя оборудованию.

Реклама

Galizin
Мучитель микросхем

Карма: 11
Рейтинг сообщений: 34
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 458
Откуда: Воронеж
Рейтинг сообщения: 0

Реклама

Neekeetos
Держит паяльник хвостом

Карма: 20
Рейтинг сообщений: 240
Зарегистрирован: Пн сен 18, 2006 11:16:05
Сообщений: 982
Откуда: Тула
Рейтинг сообщения: 0

_________________
Информация по RLC mini находится >тут

Реклама

Страница 1 из 1 [ Сообщений: 8 ]

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: Bing [Bot] , ivan dimir и гости: 6

Источник

Оцените статью