Usart的中断标志:
- USART_INT_PERR:奇偶校验错误中断
- USART_INT_TBE:发送缓冲区空中断
- USART_INT_TC:传输完成中断
- USART_INT_RBNE:接收数据缓冲区非空中断和溢出错误中断
- USART_INT_IDLE:检测到IDLE线中断
- USART_INT_LBD:LIN中断检测到中断
- USART_INT_ERR:错误中断
- USART_INT_CTS:CTS中断
- USART_INT_RT:接收超时事件中断使能位
- USART_INT_EB:块结束事件中断使能
USART_INT_PERR(Parity Error Interrupt):奇偶校验错误中断。当接收到的数据在奇偶校验中发生错误时触发该中断,可以用来处理校验错误的情况。
USART_INT_TBE(Transmit Buffer Empty Interrupt):发送缓冲区空中断。当发送缓冲区为空,可以继续发送数据时触发该中断。它可以用于实现数据连续发送或防止发送缓冲区溢出。
USART_INT_TC(Transmission Complete Interrupt):传输完成中断。当数据的完整传输(包括最后一个字节的发送)完成时触发该中断,可用于通知处理器/控制器数据发送操作已经完成。
USART_INT_RBNE(Receive Buffer Not Empty Interrupt):接收数据缓冲区非空中断和溢出错误中断。当接收数据缓冲区中至少有一个字节的数据可读取时触发该中断。此外,如果接收数据缓冲区发生溢出错误(即新数据覆盖了尚未读取的数据),也会触发该中断。
USART_INT_IDLE(IDLE line detected interrupt)是检测到串口的IDLE线状态时触发的中断。在串口通信中,IDLE线是指在一段时间内没有数据传输的状态。当接收到连续的空闲位(即接收数据中没有传输的位)时,串口会触发IDLE线状态。USART_INT_IDLE中断的作用是通知处理器/控制器,在串口中检测到数据帧的结束,即检测到整个数据传输的完成。通过启用USART_INT_IDLE中断,您可以在每次接收到完整数据帧后及时对其进行处理。
USART_INT_IDLE(IDLE Line Detected)中断用于检测串行通信中的空闲线状态。
当数据传输完成后,串口会进入空闲状态,也就是不再发送或接收数据。在空闲状态下,串口线路的电平保持不变,通常为高电平(逻辑1)。当检测到串口线路上出现连续的空闲状态时,即称为"IDLE Line"。
USART_INT_IDLE中断被触发时,表示检测到了IDLE Line。这个中断可以用于通知微控制器或处理器,表示串口数据传输已经完成,并且串口处于空闲状态。在中断处理函数中,可以执行相关的操作,比如处理接收到的数据、清除缓冲区或执行其他需要的任务。
例如,当注意到IDLE线中断时,您可以读取已接收的数据并进行相应的处理,如解析或存储。这样,您可以实现及时处理接收到的数据,以满足特定应用的需求。
USART_INT_LBD(LIN Break Detection Interrupt):LIN中断检测到中断。当从机与主机之间的LIN总线上检测到一个BREAK信号并且特殊的LIN BREAK检测机制被激活时触发该中断。它可用于处理与LIN总线通信相关的特殊情况。
USART_INT_ERR(Error Interrupt):错误中断。当接收到损坏或无效的数据时,如帧错误、噪声错误或停止位错误等,会触发该中断。通过处理此中断,您可以检测和处理串口通信中的错误情况。
USART_INT_CTS(Clear to Send Interrupt):CTS中断。在硬件流控制模式下,当接收端设备送出的CTS信号处于"Clear to Send"状态时,会触发该中断。它可用于协调发送方与接收方之间的数据传输。
USART_INT_RT(Receive Timeout Event Interrupt):接收超时事件中断使能位。在一段时间内没有接收到数据时,超过设定的时间阈值将触发该中断,可用于检测长时间无数据接收的情况。
USART_INT_EB(End of Block Event Interrupt):块结束事件中断使能位。在特定的通信协议或传输方式中,当接收器检测到块的结束时触发该中断,用于处理块数据传输的完成及相应的操作。