il-2 (04.02.2016 11:47, просмотров: 139) ответил Лагунов на Ну значит будем искать что-то у меня в самом старте на передачу. Я в верхнем сообщении добавил свой пример настройки DMA для USART. А вот так хочу стартовать после подготовки посылки:
Я так понял, что в заголовке топика ты привел ИНИЦИАЛИЗАЦИЮ(одноразовую), а в этом сообщении ИНИЦИАЦИЮ посылки? Если так, то уже неправильно. Команды N1(Включение USART) и N2(Использование DMA_Tx) МОЖНО перенести в инициализацию, их незачем выдавать для каждой посылки. А вот все настройки DMA НУЖНО делать перед каждой посылкой. Если точнее, то:
If a DMA channel is disabled, the DMA registers are not reset. The DMA channel registers (DMA_CCRx, DMA_CPARx and DMA_CMARx) retain the initial values programmed during the channel configuration phase.
Т.е. если буфер передачи один и тот-же, то эти регистры можно не трогать. А вот регистр CNDTR НУЖНО задавать перед каждой посылкой.