Jekin 0 3 августа, 2014 Опубликовано 3 августа, 2014 · Жалоба Может ещё подскажете : Почему при работе USART+DMA иногда не происходит прерывание конца передачи DMA TC ( Transmission complete) ? А вы смотрели что в DMA_CNDTRx? если до нуля не декрементирует, то прерывание не произойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 3 августа, 2014 Опубликовано 3 августа, 2014 · Жалоба Почему при работе USART+DMA иногда не происходит прерывание конца передачи DMA TC ( Transmission complete) ? "Иногда" - это насколько часто? Недавно переносил проект на F103, так не заметил такого - UART-DMA работает без единого сбоя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MiklPolikov 0 3 августа, 2014 Опубликовано 3 августа, 2014 · Жалоба А вы смотрели что в DMA_CNDTRx? если до нуля не декрементирует, то прерывание не произойдет. Нет, не смотрел. Ну наверно, если посмотреть, то так и окажется. "Иногда" - это насколько часто? Недавно переносил проект на F103, так не заметил такого - UART-DMA работает без единого сбоя. Раз в несколько ч непрерывной передачи. Когда у меня SD карты висели на SPI , всё было без сучка без задоринки. А сейчас перевесил на USART в синхронном режиме, и началась эта нестабильная работа. И в другом проекте USART то же глючит, нет-нет да и не пройдёт передача. Я так понимаю, что это специфика USART. Успех передачи почему-то не гарантирован, и надо обрабатывать не успех. Но непонятно, что ему мешает работать стабильно ? В асинхронном режиме ещё бы можно было понять, но в синхронном-то почему ? Видимо он и в синхронном режиме не до конца превращается в SPI Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 3 августа, 2014 Опубликовано 3 августа, 2014 · Жалоба А он в синхронном режиме старт, стоп, четность проверяет? SPI имеет меньше проверок, потому какие-то не совсем корректные обмены проходили, просто не было критерия ошибки. Может косвенно это касается и вашей первоначальной проблемы. Что-то не проходит, и потому не происходит декремент счетчика. Проверяйте все флаги ошибок что есть... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 4 августа, 2014 Опубликовано 4 августа, 2014 · Жалоба Я так понимаю, что это специфика USART. Успех передачи почему-то не гарантирован, и надо обрабатывать не успех. По идее - не должно быть такого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться