stm32,使用串口空闲中断,上电时会进入一次空闲中断是为什么

2019-07-21 06:45发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
warship
1楼-- · 2019-07-21 09:46
本帖最后由 warship 于 2018-12-4 14:03 编辑

空闲中断是接受数据后出现一个字节的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说应该是在收到上升沿(停止位)后一个字节,如果一直是低电平是不会触发空闲中断的
所以不要认为一上电初始化的时候打开空闲中断,还没有收到数据就会进入空闲中断。
不过为稳妥起见,最好是在接收到数据以后再打开空闲中断,这样就彻底消除这种顾虑了。

qiuzhicheng
2楼-- · 2019-07-21 09:47
warship 发表于 2018-12-4 13:52
空闲中断是接受数据后出现一个byte的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说 ...

但它莫名就是会进入空闲中断呀,我在串口中断里判断
void USART2_IRQHandler()
{
      u8 Res;
      UART1_send_byte("A"):
      if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
      {
          UART1_send_byte("B"):
      }
      if(USART_GetITStatus(USART2, USART_IT_IDLE) == SET)
      {
          USART_ClearFlag(USART2, USART_FLAG_IDLE);
          UART1_send_byte("C"):
      }
     Res =USART2->ISR;
     Res =USART2->RDR;
}
板子上电,串口助手就会打印AC一次,而且是串口初始化完后马上进
qiuzhicheng
3楼-- · 2019-07-21 10:00
 精彩回答 2  元偷偷看……
PeterYu
4楼-- · 2019-07-21 11:33
学习学习,学习学习。

一周热门 更多>