OpenEdv-开源电子网

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

串口发送数据时会触发空闲中断吗??

[复制链接]

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
发表于 2016-11-22 15:12:05 | 显示全部楼层 |阅读模式
1金钱
如题,我测试了下,串口在发送状态也会触发空闲中断,但是看了其他网友的帖子,说空闲中断与发送无关。
手册说明:
USART的各种中断事件被连接到同一个中断向量(见图256),有以下各种中断事件:
● 发送期间:发送完成中断、清除发送中断、发送数据寄存器空中断。
● 接收期间:空闲总线检测中断、溢出错误中断、接收数据寄存器非空中断、校验错误中
断、 LIN断开符号检测中断、噪音中断(仅在多缓冲器通信)和帧错误中断(仅在多缓冲器通
信)。
如果对应的使能控制位被设置,这些事件就会产生各自的中断。



看这段话的意思,空闲中断只会在接收产生呢,为啥我发送的时候也会进空闲中断??(我的串口只开了空闲中断)

最佳答案

查看完整内容[请看2#楼]

解决了 RE高电平时,RO为高阻态,stm32的rx脚如果没有上拉,就会乱入接收中断,因为没有确定的电平啊!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
 楼主| 发表于 2016-11-22 15:12:06 | 显示全部楼层
解决了   RE高电平时,RO为高阻态,stm32的rx脚如果没有上拉,就会乱入接收中断,因为没有确定的电平啊!!
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
 楼主| 发表于 2016-11-22 15:31:56 | 显示全部楼层
单独测试下串口,发送的时候确实不会触发空闲中断。
现在我用的串口接收发送都是dma,发送的时候就会触发空闲了,,,
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-11-22 15:40:19 | 显示全部楼层
我的没进去过  你程序什么样
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
 楼主| 发表于 2016-11-22 16:07:35 | 显示全部楼层
我用485转232,一发送就触发空闲,用232对232就不会出现这种问题。。。难道是485的问题,继续搞
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
 楼主| 发表于 2016-11-23 08:55:38 | 显示全部楼层
用了两块精英板,分别下载了原子485通讯的例程,在例程里面打开了串口空闲中断,然后用两块板子互相发送数据,那么问题来了,每次发送数据后都会进入空闲。。。
程序: USART_ITConfig(USART2, USART_IT_IDLE, ENABLE);
                   if(USART_GetITStatus(USART2, USART_IT_IDLE) != RESET)
                {
                res =USART2->SR;                 
                res =USART2->DR;        LED1翻转
                }
进入空闲的条件就是串口有数据进来,那么485在发送完一次数据之后,马上就有两位数据进来,这个数据不知是谁给它的。。。如果使用串口对串口 就没有这种问题。
回复

使用道具 举报

42

主题

297

帖子

0

精华

高级会员

Rank: 4

积分
994
金钱
994
注册时间
2016-7-22
在线时间
318 小时
 楼主| 发表于 2016-11-23 11:25:07 | 显示全部楼层
@正点原子  原子哥  我使用一块精英版 刷上485通信代码,并在其中打开串口空闲中断,在空闲中断服务函数中让led翻转,然后按下按键,串口发送五个数据,这时却led翻转了,说明进入了空闲中断,但是手册说了,空闲中断与发送无关。。现在我把开发板上串口与485连接的跳帽去掉,再次发送数据,却不会触发空闲中断,这就是485的问题啊??  求解啊
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2019-11-1
在线时间
12 小时
发表于 2019-11-23 01:48:40 | 显示全部楼层
挺好的帖子
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 10:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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