ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
650753 Топик полностью
il-2 (04.02.2016 12:11 - 12:14, просмотров: 96) ответил SciFi на У них DMA чудесатый какой-то. Помнится, приходилось инициализировать повторно все регистры несмотря на то, что читалось из них вроде бы то, что нужно.
Точно. Я так у себя и делаю, теперь вспомнил - почему. При завершении передачи одной посылки и начале передачи другой - эта другая посылка располагается по адресу, на котором остановилась передача предыдущей посылки!!! Я это наблюдал в отладчике на STM32F1xx. Настройка всех регистров DMA решало эту проблему (наверно достаточно перегрузить только регистр адреса буфера). Это и есть та самая "чудесатость" :-) Видимо, есть какой-то внутренний регистр адреса, который не перегружается при запуске канала DMA!!! А цитата из даташита, которую я привел, этот случай не охватывает :-)