В серии STM32F4xx есть флаг ошибки UART, который
Бит 8 LBD: флаг обнаружения обрыва LIN
Больше никакой информации по этому поводу нет. Что это означает с точки зрения UART?
В серии STM32F4xx есть флаг ошибки UART, который
Бит 8 LBD: флаг обнаружения обрыва LIN
Больше никакой информации по этому поводу нет. Что это означает с точки зрения UART?
Из справочного руководства RM0090:
Прием LIN
Схема обнаружения обрыва реализована на интерфейсе USART. Обнаружение полностью независимо от обычного приемника USART. Разрыв может быть обнаружен всякий раз, когда он происходит, в состоянии ожидания или во время кадра.
Когда приемник включен (RE=1 в USART_CR1), схема ищет на входе RX стартовый сигнал. Метод обнаружения стартовых битов тот же, что и при поиске символов разрыва или данных. После обнаружения начального бита схема производит выборку следующих битов точно так же, как для данных (на 8-й, 9-й и 10-й выборках). Если 10 (когда LBDL = 0 в USART_CR2) или 11 (когда LBDL = 1 в USART_CR2) последовательных битов определяются как «0» и за ними следует символ-разделитель, в USART_SR устанавливается флаг LBD. Если бит LBDIE = 1, генерируется прерывание. Перед подтверждением разрыва проверяется разделитель, поскольку он означает, что линия RX вернулась к высокому уровню.
Если «1» выбирается до того, как произошло 10 или 11, схема обнаружения обрыва отменяет обнаружение тока и снова ищет стартовый бит.
Если режим LIN отключен (LINEN=0), приемник продолжает работать как обычный USART без учета обнаружения обрыва.
Если режим LIN включен (LINEN=1), как только возникает ошибка кадра (т. е. стоповый бит обнаруживается в '0, что будет иметь место для любого прерывающегося кадра), приемник останавливается до тех пор, пока схема обнаружения разрыва не получит либо '1, если слово разрыва не было полным, или символ-разделитель, если разрыв был обнаружен.