你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

H743串口用dma发送数据存在问题,求大佬解答

[复制链接]
haiya6688 提问时间:2019-11-27 11:14 /
板子:h743
程序:dma+串口发送
编译器:cubeide
操作:用cubemx生成的代码,串口中断和dma中断都开了,经过测试中断发送没问题。
问题:没数据,启动dma发送后,第一次进入dma中断,只有传输完成和传输到一半的标志位置一,就不再进入中断了,再次发送返回hal_busy。
变量在D2内存域
变量在D1内存域会多一个中断标志位是DMEIF直接模式错误标志位

收藏 评论8 发布时间:2019-11-27 11:14

举报

8个回答
回答时间:2019-11-27 13:59:43
楼主,看一下HAL库DMA处理完后,是否关闭了中断。如果有,需要重新配置DMA开启才行。
haiya6688 回答时间:2019-11-27 14:32:34
安 发表于 2019-11-27 13:59
楼主,看一下HAL库DMA处理完后,是否关闭了中断。如果有,需要重新配置DMA开启才行。 ...

是串口中断对吧,可是没有任何数据打印出来,今天晚上我去看看
3111272 回答时间:2019-11-27 20:36:57
楼主贴下你的DMA配置看一下,是不是没有配置成循环模式。
haiya6688 回答时间:2019-11-29 17:56:31
安 发表于 2019-11-27 13:59
楼主,看一下HAL库DMA处理完后,是否关闭了中断。如果有,需要重新配置DMA开启才行。 ...

没有关闭
haiya6688 回答时间:2019-11-29 18:02:22
3111272 发表于 2019-11-27 20:36
楼主贴下你的DMA配置看一下,是不是没有配置成循环模式。

模式是正常模式file:///C:/Users/10435/AppData/Roaming/Tencent/Users/1043588800/TIM/WinTemp/RichOle/L585JDZV9QV3~%7D))VVLMQLI.png
L585JDZV9QV3~}))VVLMQLI.png
radio2radio 回答时间:2019-11-29 19:22:07
我怀疑串口驱动的底层有bug。

我在用F7xx的串口时,https://www.stmcu.org.cn/module/forum/thread-621670-1-1.html
发现不能使用DMA模式,只要一开DMA,马上串口工作就不正常了,没时间找原因,只好不用就是了,反正串口是慢速设备,我F7时钟216MHz飞快,中断模式也很好用。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回答时间:2019-11-29 20:03:34
楼主您好,不是这个配置。是HAL库,一般都是采集完成后,中断就关闭了。在stm32f4xx_hal_dma.c中处理完中断后,会有关闭中断的操作。楼主看一下7系列是不是也一样,最好仿真看一下DMA的寄存器,这样就确定是不是关闭中断了。
/* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回答时间:2019-11-29 20:31:28
楼主,我看了在F7里面HAL_DMA_IRQHandler中断处理完成时,如果CIRCULAR是关闭的,将会执行关闭中断。
/* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版