-
- Нет, не так. IDLE надо в обработчике UART пасти. Словил IDLE залез в DMA регистр DMA_CNDTR и поглядел, сколько данных пришло. Прерывания от DMA вообще можно не использовать. Сделал буфер с запасом и крути его по кругу. - Звероящер(30.01.2018 20:56)
- Некоторые особо упорные, я слышал, связывали прием по UART со взводом таймера, который по состоянию тишины добегал до нуля и генерил прерывания. lloyd(53 знак., 30.01.2018 21:57)
- у меня еще в 8-битнике импульсы от приема UART перезапускали таймер. Как только он переставал перезапускаться и досчитывал до конца - прием окончен. - Лагунов(31.01.2018 08:16)
- Это не упорные :) Это стандартный способ. Например, стек freemodbus примерно так работает. Это уже в угоду кроссплатформенности написано, ибо тупой таймер и уарт у всех есть, а вот уарт определяющий свободную линию и дма - не у всех. - Звероящер(31.01.2018 05:45)
- Некоторые особо упорные, я слышал, связывали прием по UART со взводом таймера, который по состоянию тишины добегал до нуля и генерил прерывания. lloyd(53 знак., 30.01.2018 21:57)
- Нет, не так. IDLE надо в обработчике UART пасти. Словил IDLE залез в DMA регистр DMA_CNDTR и поглядел, сколько данных пришло. Прерывания от DMA вообще можно не использовать. Сделал буфер с запасом и крути его по кругу. - Звероящер(30.01.2018 20:56)