OpenEdv-开源电子网

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

HAL库的HAL_USART_Transmit_DMA里的陷阱,会自动调用HAL_DMA_Start_IT开启中断,但是我看库中也有HAL_DMA_Start函数,为不用它?

[复制链接]

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
发表于 2021-11-17 11:26:08 | 显示全部楼层 |阅读模式
20金钱
HAL库的HAL_USART_Transmit_DMA里的陷阱,会自动调用HAL_DMA_Start_IT开启中断,但是我看HAL库中自身也有HAL_DMA_Start函数,它是不开启中断的,为不用它呢?
一旦用了HAL_DMA_Start_IT,就导致必须要处理void DMA2_Stream7_IRQHandler(void)等中断回调,非常麻烦,非常的不人杏。
反观标准库中,DMA发是发,发就不牵扯中断,要中断就自己加,非常的合理。
各位兄台是怎样理解这个问题的?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2021-11-17 11:58:35 | 显示全部楼层
CubeMX,HAL库在开启时系统会自动开启中断的,需要自己手动关闭
回复

使用道具 举报

0

主题

668

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1926
金钱
1926
注册时间
2021-8-13
在线时间
262 小时
发表于 2021-11-17 12:04:11 | 显示全部楼层
看他这两个函数的初始化是怎样的,HAL_DMA_Start_IT是开启DMA的中断,HAL_DMA_Start是操作,看你是打算怎么去使用这两函数
回复

使用道具 举报

14

主题

821

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2070
金钱
2070
注册时间
2021-7-17
在线时间
647 小时
发表于 2021-11-17 12:08:47 | 显示全部楼层
HAL_DMA_Start_IT()和HAL_DMA_Start()函数性质不同,不使用中断的情况下直接初始化HAL_DMA_Start()函数
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-17 13:28:58 | 显示全部楼层
ChenRyan 发表于 2021-11-17 12:08
HAL_DMA_Start_IT()和HAL_DMA_Start()函数性质不同,不使用中断的情况下直接初始化HAL_DMA_Start()函数

太复杂了
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-17 13:29:24 | 显示全部楼层
ChenRyan 发表于 2021-11-17 12:08
HAL_DMA_Start_IT()和HAL_DMA_Start()函数性质不同,不使用中断的情况下直接初始化HAL_DMA_Start()函数

太复杂了
回复

使用道具 举报

25

主题

115

帖子

0

精华

高级会员

Rank: 4

积分
939
金钱
939
注册时间
2018-11-9
在线时间
146 小时
 楼主| 发表于 2021-11-17 13:30:07 | 显示全部楼层
ChenRyan 发表于 2021-11-17 11:58
CubeMX,HAL库在开启时系统会自动开启中断的,需要自己手动关闭

难受,不想轻易改HAL库源代码
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 15:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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