qq_52475050 2025-11-03 14:43 采纳率: 0%
浏览 12

瑞芯微的HAL怎么配置UART和DMA

最近在使用瑞芯微的RK3506来适配一个项目,项目只能用瑞芯微的HAL库来开发。
现在自己使用DMA的MEM_TO_MEM跑通了,但是使用DEV_TO_MEM就不行了,一直卡到这里了,求帮帮忙。

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-11-03 15:05
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    根据你的问题描述,似乎是DMA配置的问题。瑞芯微的HAL库提供了DMA的配置接口,下面是核心配置代码:

    // 配置DMA的源和目的地址
    dma_config.src_addr = (uint32_t)&uart_tx_buf;
    dma_config.dst_addr = (uint32_t)&uart_reg->TDR;
    
    // 配置DMA的传输方向和模式
    dma_config.direction = DMA_DEV_TO_MEM;
    dma_config.mode = DMA_MEM_TO_MEM;
    
    // 配置DMA的传输宽度和数量
    dma_config.width = DMA_WIDTH_8BIT;
    dma_config.num = 1024;
    
    // 配置DMA的传输速度和优先级
    dma_config.speed = DMA_SPEED_HIGH;
    dma_config.priority = DMA_PRIORITY_HIGH;
    
    // 启动DMA传输
    dma_start(&dma_config);
    

    注意

    • 确保DMA的源和目的地址正确配置。
    • 确保DMA的传输方向和模式正确配置。
    • 确保DMA的传输宽度和数量正确配置。
    • 确保DMA的传输速度和优先级正确配置。

    建议

    • 检查DMA的配置是否正确。
    • 检查UART的配置是否正确。
    • 检查DMA的传输是否正常。
    • 检查UART的传输是否正常。

    如果仍然遇到问题,请提供更多的信息和代码,方便我进一步帮助你。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日