硬汉嵌入式论坛

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

[HAL] 每次看到DMA_FLAG_FEIF0_4,我都以为是标志0到4

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2019-1-22 09:53:51 | 显示全部楼层 |阅读模式
今天细看了下,原来是0和4。专用于DMA1和DMA2的,而BDMA是用的另外的宏定义标志。
这里0和4是对应的DMA1或者DMA2的Stream0和Stream4的标志,同理1和5就是Srteam1和Stream5。

Stream0 到 Stream3的标志是通过LISR寄存器查看。
Stream4 到 Stream7的标志是通过HISR寄存器查看。

另外
#define DMA_FLAG_FEIF0_4          ((uint32_t)0x00800001U)
#define DMA_FLAG_DMEIF0_4       ((uint32_t)0x00800004U)

这个的8是什么鬼,看了参考手册,原来这个bit没有定义。

  1. /** @defgroup DMA_flag_definitions DMA flag definitions
  2.   * @brief    DMA flag definitions
  3.   * @{
  4.   */
  5. #define DMA_FLAG_FEIF0_4                    ((uint32_t)0x00800001U)
  6. #define DMA_FLAG_DMEIF0_4                   ((uint32_t)0x00800004U)
  7. #define DMA_FLAG_TEIF0_4                    ((uint32_t)0x00000008U)
  8. #define DMA_FLAG_HTIF0_4                    ((uint32_t)0x00000010U)
  9. #define DMA_FLAG_TCIF0_4                    ((uint32_t)0x00000020U)
  10. #define DMA_FLAG_FEIF1_5                    ((uint32_t)0x00000040U)
  11. #define DMA_FLAG_DMEIF1_5                   ((uint32_t)0x00000100U)
  12. #define DMA_FLAG_TEIF1_5                    ((uint32_t)0x00000200U)
  13. #define DMA_FLAG_HTIF1_5                    ((uint32_t)0x00000400U)
  14. #define DMA_FLAG_TCIF1_5                    ((uint32_t)0x00000800U)
  15. #define DMA_FLAG_FEIF2_6                    ((uint32_t)0x00010000U)
  16. #define DMA_FLAG_DMEIF2_6                   ((uint32_t)0x00040000U)
  17. #define DMA_FLAG_TEIF2_6                    ((uint32_t)0x00080000U)
  18. #define DMA_FLAG_HTIF2_6                    ((uint32_t)0x00100000U)
  19. #define DMA_FLAG_TCIF2_6                    ((uint32_t)0x00200000U)
  20. #define DMA_FLAG_FEIF3_7                    ((uint32_t)0x00400000U)
  21. #define DMA_FLAG_DMEIF3_7                   ((uint32_t)0x01000000U)
  22. #define DMA_FLAG_TEIF3_7                    ((uint32_t)0x02000000U)
  23. #define DMA_FLAG_HTIF3_7                    ((uint32_t)0x04000000U)
  24. #define DMA_FLAG_TCIF3_7                    ((uint32_t)0x08000000U)
复制代码



1.jpg
2.jpg



回复

使用道具 举报

22

主题

93

回帖

159

积分

初级会员

积分
159
发表于 2024-3-27 14:40:01 | 显示全部楼层
官方HAL库中的公用中断函数void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)中为啥只对0和4做了处理?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2024-3-27 15:37:37 | 显示全部楼层
shibinjie 发表于 2024-3-27 14:40
官方HAL库中的公用中断函数void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)中为啥只对0和4做了处理?

都做处理了。
回复

使用道具 举报

22

主题

93

回帖

159

积分

初级会员

积分
159
发表于 2024-3-27 16:44:02 | 显示全部楼层

嗯,看明白了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 14:17 , Processed in 0.294631 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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