硬汉嵌入式论坛

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

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

[复制链接]

10

主题

43

回帖

73

积分

初级会员

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


回复

使用道具 举报

10

主题

43

回帖

73

积分

初级会员

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

使用道具 举报

5

主题

132

回帖

147

积分

初级会员

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

使用道具 举报

75

主题

685

回帖

910

积分

金牌会员

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

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

这种情况要处理下。
回复

使用道具 举报

10

主题

43

回帖

73

积分

初级会员

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

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

使用道具 举报

10

主题

43

回帖

73

积分

初级会员

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

这 ...

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

使用道具 举报

10

主题

43

回帖

73

积分

初级会员

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 10:45 , Processed in 0.333657 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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