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

 
 
> ADC Triple Mode + DMA + TIM
Connor
сообщение Jan 3 2018, 06:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 26-05-17
Пользователь №: 97 309



Добрый день! Создал проект в кубе, в котором хочу реализовать измерение АЦП в режиме Triple Mode по таймеру (триггеру) с DMA. Может кто-то работал с похожей задачей? Одиночный АЦП нормально работает по таймеру с DMA. Включение же АЦП в режиме Triple Mode с DMA с помощью функции HAL_ADCEx_MultiModeStart_DMA не работает, не идёт запись по DMA данных в заданный массив из регистров АЦП (в регистрах АЦП (DR) значения есть) + АЦП срабатывают только один раз, далее не работают, но счётчик продолжает считать.
P.S. Я в этом деле человек относительно новый и хотел бы уточнить правильно ли я понимаю сам процесс работы такой связки АЦП + DMA + TIM, в данном случае это DMA контроллер срабатывает по триггеру с таймера (хотя он является триггером для АЦП?) и в свою очередь запускает АЦП или нет?
Спасибо за ответы!
Привожу скриншоты своего проекта в кубе + кусочек кода из main();
P.S.2
1 Прерывания АЦП и таймера выключены
2 В настройках АЦП2 куб почему то дублирует два ранга, всякие попытки изменить число каналов ни к чему ни привели, он всё равно дублирует два ранга, не знаю баг это или нет.














А так я запускаю АЦП в режиме Triiple Mode
Код
/* USER CODE BEGIN PV */
/* Private variables ---------------------------------------------------------*/
volatile uint16_t ADC_buffer[9];
/* USER CODE END PV */
HAL_TIM_Base_Start(&htim3);
HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t*)&ADC_buffer, 3);




Сообщение отредактировал Connor - Jan 3 2018, 07:12
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:18
Рейтинг@Mail.ru


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