OpenEdv-开源电子网

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

设置串口DMA发送时,必定会进入空闲中断?

[复制链接]

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
发表于 2021-8-10 11:43:50 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 chenyuan 于 2021-8-10 11:46 编辑


这是串口的硬件,发送和接收连在一起,代码上是想每4ms发送一次数据,发送完成后,设置接收

代码如图,但是采集到的现象是,每次发送完数据后,都会进入空闲中断



我用正点原子的开发板执行类似代码,是正常现象,是发送完后,收到数据才会进入空闲中断,但是目前板子硬件上是连在一起的,然后想着发送的时候把接收相关的关掉,然后发送的时候再开启,
但是发送的时候,还是进入了空闲中断,想请教下大家,有什么方法可以解决吗?  谢谢啦!




3.png
2.png
1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

456

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
1072
注册时间
2021-4-26
在线时间
352 小时
发表于 2021-8-10 11:46:54 | 显示全部楼层
回复

使用道具 举报

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
 楼主| 发表于 2021-8-10 11:48:11 | 显示全部楼层

发出来了...
直接复制过来,结果发不出来,只能上传...
回复

使用道具 举报

4

主题

912

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4509
金钱
4509
注册时间
2019-9-4
在线时间
914 小时
发表于 2021-8-10 12:00:32 | 显示全部楼层
耶?不对吧,关闭了空闲中断和清空了标志位之后,再发送应该就不会进入中断了啊。你仿真调试打断点看看
回复

使用道具 举报

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
 楼主| 发表于 2021-8-10 13:43:53 | 显示全部楼层
本帖最后由 chenyuan 于 2021-8-10 13:47 编辑
A571157242 发表于 2021-8-10 12:00
耶?不对吧,关闭了空闲中断和清空了标志位之后,再发送应该就不会进入中断了啊。你仿真调试打断点看看

加断点发现是经过发送完成中断后,执行完设置接收 HAL_UART_Receive_DMA();(112行)后又再次进入了空闲中断,上图是发送完成中断 和空闲中断的代码
5.png
4.png
回复

使用道具 举报

3

主题

8

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2020-9-28
在线时间
14 小时
发表于 2021-8-13 09:51:54 | 显示全部楼层
你这个是用什么监测波形的
回复

使用道具 举报

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
 楼主| 发表于 2021-8-13 10:54:22 | 显示全部楼层
timmyliu 发表于 2021-8-13 09:51
你这个是用什么监测波形的

逻辑分析仪
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13104
金钱
13104
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-8-13 11:15:10 | 显示全部楼层
串口是全双工的,为啥要阉割掉?之前用的DMA+空闲,没出过问题
学无止境
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13104
金钱
13104
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-8-13 11:15:49 | 显示全部楼层
哦哦  串口TX和RX连在一起了。。。谁这么设计的。。。
学无止境
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13104
金钱
13104
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-8-13 11:17:24 | 显示全部楼层
你把清空闲中断放到开启空闲之前试试
学无止境
回复

使用道具 举报

41

主题

278

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357
金钱
2357
注册时间
2019-10-29
在线时间
380 小时
 楼主| 发表于 2021-8-14 09:31:14 | 显示全部楼层
jermy_z 发表于 2021-8-13 11:17
你把清空闲中断放到开启空闲之前试试

需求上只给引出一个端口,要可以发送,并且可以接收,
之前硬件上还有个 “硬件开关”,往对应的引脚写1 或0 ,输出端口连到 TX 或 RX,后面给去掉了,想着设置发送前,将 接收失能 ,应该不会影响到...
也试过将清空闲中断放到开启空闲之前,还有试过,失能或使能接收后,都清一遍空闲中断,现象还是一样的,发送完成,再设置接收后,就直接进了空闲中断
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 11:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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