我不看月亮Lee 2024-02-01 21:12 采纳率: 40%
浏览 3

STM32中DMA通道请求优先级比较

STM32中DMA1通道请求的软件优先级为低,DMA2通道请求的软件优先级为中,那这两个通道请求哪个高?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-01 21:14
    关注

    引自免费微信小程序:皆我百晓生

    在STM32的DMA控制器中,软件优先级和硬件请求优先级是两个不同的概念。软件优先级是由用户通过编程设置的,它影响的是同一DMA控制器内部不同通道之间的仲裁逻辑;而硬件请求优先级则是指不同DMA控制器(例如DMA1和DMA2)之间根据它们所连接到的外设或总线接口的固有特性决定的。

    对于您的问题,如果已知DMA1的某个通道设置了低软件优先级,而DMA2的某个通道设置了中等软件优先级,这仅表示在DMA1和DMA2各自的内部仲裁时,DMA2的该通道会比DMA1的那个通道具有更高的优先级执行权。

    然而,在实际应用中,如果DMA1和DMA2的通道同时请求传输,并且没有明确的硬件优先级设置,则DMA控制器会依据各自独立的软件优先级进行处理,不会直接比较两个不同DMA控制器之间的优先级。

    至于如何设置DMA通道的软件优先级,您可以参考STM32的HAL库函数,例如对STM32F4系列,可以使用HAL_DMAEx_SetChannelPriority()函数:

    HAL_StatusTypeDef HAL_DMAEx_SetChannelPriority(DMA_HandleTypeDef *hdma, uint32_t Channel, DMA_Priority_TypeDef Priority)
    

    在此函数中,您需要传入DMA句柄、通道编号以及优先级(高、中、低)。

    但请注意,若要确定DMA1与DMA2之间的硬件请求级别关系,您需要查阅具体型号的STM32数据手册,因为这种关系取决于微控制器的架构设计,而不是简单的软件配置。通常情况下,不同的DMA控制器服务于不同的外设集,因此其优先级通常是并行处理,而非互相覆盖。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月1日

悬赏问题

  • ¥15 请问如何从gprmax中导出的merged.out文件获取雷达数据(应该是个二维数组吧),我看到网上很多对雷达数据的操作但是都没有说如何获得这个数据,因为out文件不能直接操作要转成其他格式是吧
  • ¥15 usb相机曝光度expos增加一点,获取图像速度显著变慢。
  • ¥15 如何解决如图问题:我创建的java maven项目中使用了03版本的excel,我先进行了文件读取的操作(可以正常取出,文件还未损坏),文件还未损坏),然后在进行了对同一文件的写入操作
  • ¥100 对接googlepay/googlewallet咨询
  • ¥15 Odoo 17系统中如何配置自动更新生产成本功能
  • ¥15 如何提取京东订单生成QQ支付链接
  • ¥50 游戏中的像素着色器获取到的法线贴图错误怎么解决
  • ¥15 把从欧空局下载的哨兵一号数据导入snap的时候出现这个问题该怎么解决😥
  • ¥15 蓝桥杯stm322016年省赛试题中遇到的问题
  • ¥15 有没有ND4J能用的MAVEN地址