Да, работает. Не помню, писал ли я где-то здесь, но окончательный вариант получился как у вас. Просто сразу про такую запись не сказали, вот и пробовал по-всякому.
UPD. Таки писал)
http://radiokot.ru/forum/viewtopic.php?p=1209048#p1209048.
Раз уж мы здесь, есть вопрос. Плата F4 Discovery. С примеров надёргал кусков кода, с помощью DMA АЦП задействован в режиме одновременного съёма показаний. Код в аттаче.
Сигнал смещённой синусоиды подключён одним проводом к двум каналам (10, 11). Диод зажигается, если значения, одновременно (!) снятые двумя АЦП, одинаковы.
Казалось бы, он должен всегда светиться, и на вид это так, однако на осциллографе видно, что значения одинаковы не всегда.
Вопрос вот в чём: правильно ли вообще так проверять одинаковость (как бы DMA работает без участия ядра, и просто по кольцу складывает данные в массив)?
И как тогда правильно проверить? Сделать прерывание по DMA?
Спасибо.