硬汉嵌入式论坛

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

[UART] STM32H7串口使用传输完成中断后,无限进传输完成中断出不来

[复制链接]

5

主题

18

回帖

33

积分

新手上路

积分
33
发表于 2022-4-21 16:59:38 | 显示全部楼层 |阅读模式
16505311967399.png 16505312235209.png
请问一下,我这样子操作为什么会进中断出不来呢?我使能空闲中断可以正常使用,使能发送完成中断就会一直进中断,是我配置得问题吗?我把传输完成中断那块频闭掉了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106974
QQ
发表于 2022-4-21 17:25:11 | 显示全部楼层
楼主这个是做了个什么功能,串口空闲中断配合DMA做不定长接收吗,此贴方案借鉴下:

STM32H7基于STM32CubeMX的串口DMA+空闲中断接收不定长数据实现(HAL库1.9.0自带函数实现)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=108553
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2022-4-21 17:29:51 | 显示全部楼层
eric2013 发表于 2022-4-21 17:25
楼主这个是做了个什么功能,串口空闲中断配合DMA做不定长接收吗,此贴方案借鉴下:

STM32H7基于STM32Cub ...

好的,谢谢您,我看下,我就是用DMA解决串口不定长收发功能,同时也是为MCU减负
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2022-4-21 17:35:22 | 显示全部楼层
eric2013 发表于 2022-4-21 17:25
楼主这个是做了个什么功能,串口空闲中断配合DMA做不定长接收吗,此贴方案借鉴下:

STM32H7基于STM32Cub ...

不是很想借助STM32CubeMX,虽然很方便,但是感觉那个版本换个电脑得保持一样的版本,就用的源码移植的FreeRTOS的工程
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2022-4-21 17:39:42 | 显示全部楼层
eric2013 发表于 2022-4-21 17:25
楼主这个是做了个什么功能,串口空闲中断配合DMA做不定长接收吗,此贴方案借鉴下:

STM32H7基于STM32Cub ...

我这块空闲中断DMA接收不定长数据到没问题,是串口发送使能传输完成中断会一直进中断,造成死机,它必须是发送之前使能中断,发送完成禁止中断才可以,但是这种操作按常理来说是不对的,现在有时间了想解决一下这个问题,上面传输完成中断我是频闭掉的,才不会死机
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106974
QQ
发表于 2022-4-22 09:16:18 | 显示全部楼层
哼哼唧唧2022 发表于 2022-4-21 17:35
不是很想借助STM32CubeMX,虽然很方便,但是感觉那个版本换个电脑得保持一样的版本,就用的源码移植的Fre ...

不用借助,这里的借助仅仅是简单的生成下串口和DMA配置而已。你复制出来使用即可。

应用代码都是要自己写的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106974
QQ
发表于 2022-4-22 09:18:29 | 显示全部楼层
哼哼唧唧2022 发表于 2022-4-21 17:39
我这块空闲中断DMA接收不定长数据到没问题,是串口发送使能传输完成中断会一直进中断,造成死机,它必须 ...

你说的是TXE发送空中断吧。
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2022-4-22 11:02:31 | 显示全部楼层
eric2013 发表于 2022-4-22 09:18
你说的是TXE发送空中断吧。

UART_IT_TC,是这个传输完成中断
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106974
QQ
发表于 2022-4-22 11:50:17 | 显示全部楼层
哼哼唧唧2022 发表于 2022-4-22 11:02
UART_IT_TC,是这个传输完成中断

DMA方式发送也能频繁进入TC中断,岂不是异常了。除非你是DMA循环模式发送。
image.png
回复

使用道具 举报

5

主题

18

回帖

33

积分

新手上路

积分
33
 楼主| 发表于 2022-4-22 13:37:38 | 显示全部楼层
eric2013 发表于 2022-4-22 11:50
DMA方式发送也能频繁进入TC中断,岂不是异常了。除非你是DMA循环模式发送。

明白了,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 15:04 , Processed in 0.259324 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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