ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
1271511 Топик полностью
il-2 (28.12.2022 18:15, просмотров: 211) ответил my504 на Чего то я сегодня разошелся... ))) Еще вопрос. Работаю с AT32F421. Принимаю по UART1 пакеты по 66 байт в 9-битном режиме. Сначала в прерывании ловлю адресный байт и, если он свой, то запускаю DMA (по UART1_RX) и принимаю оставшиеся 65 байт. Проблема состоит в том, что сразу после запуска DMA происходят все 65 транзакций подряд этим самым адресным байтом без реквестов от приемника УАРТа... Словно включен режим M2M. Но он не включен. Кто может сталкивался? В AT32F407 такого не
Правильнее чтобы прием в кольцевой буфер по DMA был включен всегда. А в момент когда надо ловить адресный байт - разрешать прерывания и в обработчике вылавливать принятые по DMA байты. Нет риска пропуска байтов на высокой скорости. Прием по DMA и запросы прерывания дополняют друг друга, а не мешают. На STM32 так, во всяком случае.