苏柚 发表于 2015-11-26 13:26:40

【FAQ提问】LBD总是置位

FAQ网友提问
在进行串口中断接收时,总是出现LBD标志位为1 ,官方解释LIN break detection flag,可是不知道是什么原因导致这种现象出现的,我用的是HAL库。

kate2005_chen 发表于 2020-8-6 19:51:36

发生硬件中断时,产生LBD置位。
在USART中实现了一个中断检测电路。检测完全独立于普通的USART接收器。中断可以在空闲状态或帧期间随时检测到。
当接收器被启用时(在USART_CR1中RE=1),电路会查看RX输入以获得启动信号。在搜索中断时,检测起始位的方法是相同的字符或数据。在检测到一个起始位后,电路对下一个位进行采样,与数据完全相同(在第8、第9和第10个采样中)。如果10(USART U CR2中LBDL=0)或11(USART U CR2中LBDL=1时)连续位被检测为“0”,并且后跟一个分隔符字符,则在USART U SR中设置LBD标志。如果LBDIE位=1,则生成中断。在验证中断之前,将检查分隔符,因为它表示RX行已返回到高级别。
见STM32芯片LIN reception 章节。
页: [1]
查看完整版本: 【FAQ提问】LBD总是置位