mantech 34 12 апреля, 2020 Опубликовано 12 апреля, 2020 (изменено) · Жалоба 6 минут назад, jcxz сказал: ТС-у нужно определить, что длительность 0-я не менее чем сколько-то мсек. Так и есть, по уарту приходит ошибка кадра, запускаем таймер и отслеживаем линию приема, если за это время уарт "молчит" - считаем что есть сброс, если приходит прерывание уарта - значит какая-то помеха... Возможа еще и ситуация, уарт начал нормально принимать данные - значит это была просто ошибка кадра по помехе. Изменено 12 апреля, 2020 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба Можно ещё так: по получению ошибки фрейма (начало BREAK), запустить периодический поллинг через GPIO (период ~1мсек) и параллельно продолжать принимать UART-ом. Обнаружение завершения BREAK: или очередной поллинг вернул лог.1 или UART что-то принял - что первое случилось, то и служит маркером конца BREAK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neo_Matrix 0 12 апреля, 2020 Опубликовано 12 апреля, 2020 (изменено) · Жалоба 6 минут назад, jcxz сказал: Можно ещё так: по получению ошибки фрейма (начало BREAK), запустить периодический поллинг через GPIO (период ~1мсек) и параллельно продолжать принимать UART-ом. Обнаружение завершения BREAK: или очередной поллинг вернул лог.1 или UART что-то принял - что первое случилось, то и служит маркером конца BREAK. Я об этом ранее уже писал Изменено 12 апреля, 2020 пользователем Neo_Matrix Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 12 апреля, 2020 Опубликовано 12 апреля, 2020 · Жалоба 2 минуты назад, Neo_Matrix сказал: Я об этом ранее уже писал Тогда остается проверить одновременную работу gpio in и уарта без переключения функций, если работает - то так самый простой выход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 4 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба Кому лень читать реф.мануал могут просто посмотреть на картинки fig.25 и fig.26 Сигнал во входа доступен через GPIOx->IDR всегда, а вот сигналы от периферии подключаются к ноге через мультиплексоры и в каждый момент времени нога может быть подключена только к одному из периферийных устройств. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 13 апреля, 2020 Опубликовано 13 апреля, 2020 · Жалоба А я читал руководство пользователя и для определения выдергивания/подключения шнурка к УСАПП использую флаг прерывания BREAK вместе с проверкой UDR на ноль и флаг прерывания IDLE. В задаче автора темы можно еще считать таймером время между этими событиями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться