stm32 USART_IT_IDLE中断 一帧数据
2018-01-22 10:48
337 查看
USART_IT_IDLE中断,是串口收到一帧数据后,发生的中断。也可以叫做一包数据
USART_IT_IDLE和USART_IT_RXNE区别
当接收到1个字节,会产生USART_IT_RXNE中断
当接收到一帧数据,就会产生USART_IT_IDLE中断
清中断方法
使用举例
实验现象
USART_IT_IDLE和USART_IT_RXNE区别
当接收到1个字节,会产生USART_IT_RXNE中断
当接收到一帧数据,就会产生USART_IT_IDLE中断
清中断方法
//USART_IT_RXNE USART_ClearITPendingBit(USART1, USART_IT_RXNE); //USART_IT_IDLE USART1->SR; //先读SR寄存器 USART1->DR; //再读DR寄存器
使用举例
u8 count; u8 flag; void uart_init(u32 bound) { ... USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_ITConfig(USART1, USART_IT_IDLE, ENABLE); ... } void USART1_IRQHandler(void) { u8 r; if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { USART_ClearITPendingBit(USART1, USART_IT_RXNE); //只USART_ReceiveData也可以 //r = USART_ReceiveData(USART1); count++; } else if(USART_GetFlagStatus(USART1, USART_FLAG_IDLE) != RESET) { USART1->SR; USART1->DR; flag = 1; } } int main() { while(1) { if(flag == 1) { printf("count %d\r\n", count); flag = 0; count = 0; } delay_ms(10); } }
实验现象
相关文章推荐
- stm32F030C8单片机串口利用USART_IT_IDLE接收完整的一帧
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- stm32串口中断接收一帧数据
- stm32F030C8单片机串口利用USART_IT_IDLE+DMA接收完整的一帧
- STM32串口使用IDLE中断接收不定长数据原理与源程序
- stm32-串口使用IDLE中断接受不定长数据方法
- 在ucos系统上使用USART1串口中断函数处理串口数据
- stm32的串口空闲中断接收数据
- STM32利用串口空闲中断在串口DMA配置下接收变长数据
- STM32—无需中断来实现使用DMA接收串口数据
- STM32—无需中断来实现使用DMA接收串口数据(原创)
- STM32中断数据回调函数接收处理
- 教你如何使用stm32发送一帧数据(结构体中的数据)
- STM32 USART中断小程序
- 关于stm32的usart的接收中断使能问题
- STM32 串口 空闲中断接收不定长数据
- STM32 -USART中断方式
- STM32之USART串口接收数据处理
- STM32 USART中断小程序
- STM32使用DMA加串口空闲中断接收数据