硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3482|回复: 9
收起左侧

[STM32CubeF4] 串口空闲中断+DMA收发keil单步正常,全速出问题

[复制链接]

16

主题

58

回帖

106

积分

初级会员

积分
106
发表于 2022-7-6 17:29:27 | 显示全部楼层 |阅读模式
如题,使用stm32cubemx 配置串口中断+DMA收发,在keil里进行仿真测试,单步运行,数据收发正常,全速运行进不了同样的逻辑。如最后一张图,加断点查看数据正常,不加断点后面的逻辑就进不了。求大佬帮忙解答,谢谢!
image.png
image.png
image.png
image.png
image.png
image.png


回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2022-7-6 17:38:16 | 显示全部楼层
仿真发现全速运行时只能收到第一个字节
回复

使用道具 举报

6

主题

152

回帖

170

积分

初级会员

积分
170
发表于 2022-7-6 18:07:41 | 显示全部楼层
我记得现在的hal库 里面 uart有带idle_dma后缀的api,直接用就行了
回复

使用道具 举报

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
发表于 2022-7-6 22:24:09 | 显示全部楼层
无关风月 发表于 2022-7-6 18:07
我记得现在的hal库 里面 uart有带idle_dma后缀的api,直接用就行了

你是收到什么发什么吗?如果是的话你的发送有问题。启用DMA发送后不能直接关闭,应该在DMA中断里面关闭
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2022-7-7 12:51:41 | 显示全部楼层
空闲中断注意一点,只要你开启了,就会进入一次,后续才会进入正常模式。接收数据有空闲了进入中断。

这种情况要处理下。
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2022-7-7 13:35:15 | 显示全部楼层
庄永 发表于 2022-7-6 22:24
你是收到什么发什么吗?如果是的话你的发送有问题。启用DMA发送后不能直接关闭,应该在DMA中断里面关闭

收发数据不一样,我是读芯片寄存器数据。
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2022-7-7 13:36:49 | 显示全部楼层
eric2013 发表于 2022-7-7 12:51
空闲中断注意一点,只要你开启了,就会进入一次,后续才会进入正常模式。接收数据有空闲了进入中断。

这 ...

大佬,请教下该怎么处理。同样的串口接收程序,我用上位机不定长发,接收都是正常的。但是通过单片机读外部芯片寄存器内的数据,就出现这种情况。
回复

使用道具 举报

16

主题

58

回帖

106

积分

初级会员

积分
106
 楼主| 发表于 2022-7-7 13:39:16 | 显示全部楼层
无关风月 发表于 2022-7-6 18:07
我记得现在的hal库 里面 uart有带idle_dma后缀的api,直接用就行了

试了下你说的这个API,怎么进不了回调函数,有没有参考例程指导下,谢谢
回复

使用道具 举报

16

主题

33

回帖

81

积分

初级会员

努力做,耐心等

积分
81
发表于 2025-1-18 19:27:52 | 显示全部楼层
楼主解决了吗,我也遇到同样的问题
回复

使用道具 举报

4

主题

8

回帖

20

积分

新手上路

积分
20
发表于 2025-2-2 01:17:20 来自手机 | 显示全部楼层
是不是开cache了
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:32 , Processed in 0.059230 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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