STM32F4xx 系列中有一个 UART 错误标志,即
Bit 8 LBD:LIN 中断检测标志
没有关于此的进一步信息。这对UART意味着什么?
来自参考手册 RM0090:
LIN接收
在 USART 接口上实现了一个中断检测电路。检测完全独立于普通 USART 接收器。无论何时发生中断,在空闲状态期间或在帧期间,都可以检测到中断。
当接收器启用时(USART_CR1 中的 RE=1),电路会查看 RX 输入以获取启动信号。查找中断字符或数据时,检测起始位的方法相同。检测到起始位后,电路对下一位进行采样,与数据完全相同(在第 8、第 9 和第 10 个样本上)。如果 10(当 USART_CR2 中的 LBDL = 0)或 11(当 USART_CR2 中的 LBDL=1 时)连续位被检测为 '0,并且后跟一个分隔符,则在 USART_SR 中设置 LBD 标志。如果 LBDIE 位=1,则产生中断。在验证中断之前,会检查分隔符,因为它表示 RX 线已返回到高电平。
如果在 10 或 11 出现之前采样了 '1,则断点检测电路取消电流检测并再次搜索起始位。
如果禁用 LIN 模式 (LINEN=0),接收器将继续正常 USART 工作,而不考虑中断检测。
如果启用 LIN 模式 (LINEN=1),一旦发生帧错误(即检测到停止位为 '0,任何中断帧都会出现这种情况),接收器停止,直到中断检测电路接收到'1,如果中断词不完整,或者如果检测到中断,则为分隔符。