Цитата(Flexz @ Mar 6 2012, 10:28)

По неработающей периферии - посмотрите раздел "2.1 System architecture". У DMA1 не упоминается периферийная шина и на схеме он не соединен с AHB-периферией, вероятно, причина в этом.
А фифо как настраиваете? там же отдельно есть настроки Memory burst и Peripheral burst.
Да, действительно, согласно этому разделу
DMA2 peripheral bus есть, а такой же для DMA1 нет. Однако, заработало то у меня именно с DMA1. К тому же DMA2 замечательно работает с адресами меньше 0x40010000 - есть пример от IAR с DAC. Не проверял работу DMA1 с адресами <0x40010000, но не удивлюсь, если окажется, что не работает. Такое своеобразное разделение между двумя DMA по адресному пространству. Однако обнаружить эти особенности в каких-либо руководствах не удалось.
Настройки фифо и бёрст достаточно тривиальны, здесь сложно сильно ошибиться:
Код
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_INC8;
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_INC8;
Настораживает то, что GPIO нет специальных настроек разрешения работы с DMA, как например есть у другой периферии.
Сообщение отредактировал Sekat - Mar 6 2012, 12:05