OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3021|回复: 5

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

[复制链接]

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
发表于 2018-12-4 10:09:14 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4505
金钱
4505
注册时间
2018-5-11
在线时间
943 小时
发表于 2018-12-4 13:52:45 | 显示全部楼层
本帖最后由 warship 于 2018-12-4 14:03 编辑

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

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
 楼主| 发表于 2018-12-4 14:06:38 | 显示全部楼层
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一次,而且是串口初始化完后马上进
回复

使用道具 举报

39

主题

535

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2018-3-27
在线时间
378 小时
 楼主| 发表于 2018-12-4 14:08:37 | 显示全部楼层
warship 发表于 2018-12-4 13:52
空闲中断是接受数据后出现一个字节的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说 ...

而且我在串口初始化最后加上下面程序也没用

    USART_ClearFlag(USART2, USART_FLAG_IDLE);

     Res =USART2->ISR;
     Res =USART2->RDR;
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6456
金钱
6456
注册时间
2018-6-27
在线时间
546 小时
发表于 2018-12-17 12:48:28 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2019-4-28
在线时间
21 小时
发表于 2019-12-23 11:31:45 | 显示全部楼层
warship 发表于 2018-12-4 13:52
空闲中断是接受数据后出现一个字节的高电平(空闲)状态,就会触发空闲中断.并不是空闲就会一直中断,准确的说 ...

曾经我再论坛看到过一个解决上电进IDEL中断的帖子,大概是在需要在串口初始化是做一个寄存器配置,并且我也测试过是可以解决上电进一次中断这个问题,但是现在找不到那个帖子了,方法也忘记了,有知道或有其他方法的朋友请提示一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 08:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表