Занимаюсь разработкой дивайса на STM32F051C8T6. Используется DAC в режиме DMA. "Родным" каналом для DAC в данном камне является 3 канал. Но он у меня занят под обмен по интерфейсу SPI c другой платой дивайса, которая является SPI мастером. Пришлось использовать для DAC TIMER15 и канал DMA номер 5("родной" для TIMER15). В регистре DAC_CR взвел биты триггера для TIMER15. Вроде все работает, но в момент запуска DAC в режиме DMA теряется связь с мастером(входящий от слейва к мастеру поток искажается, CRC не совпадает). Мучился несколько дней, пробовал заводить DAC на другой свободный канал и с другим таймером. Все без толку. Потом, без всякой связи с проблемой, сообразил, что в режиме DMA установка битов триггера под соответствующий таймер не требуется. закомментил соответствующую строчку, загрузил, все работает как часы, в том числе и связь. Просто, несколько неожиданно для меня. Може сгодится кому...
Сообщение отредактировал nanorobot - Mar 24 2017, 20:49
|