华大MCU_HC32F460串口TX发送使用DMA传输遇到的坑

DAM初始化结构体

DMA: 1 次请求传输 1 个数据块,支持连锁传输功能,可实现 1 次请求传输多个数据块。
数据块最小为 1 个数据,最多可以是 1024 个数据,每个数据的宽度可配置为 8bit,16bit 或 32bit。

/*  DMA 初始化结构体: */
    typedef struct stc_dma_config
    {
        uint16_t                u16BlockSize;       ///< 设置数据块的大小, 0~1023 (0表示1024,即1块有1024个数据)
        uint16_t                u16TransferCnt;     ///< 总的传输次数,每次请求(DMA触发源触发一次)启动一个数据块的传输
        uint32_t                u32SrcAddr;         ///< 源地址
        uint32_t                u32DesAddr;         ///< 目标地址
        uint16_t                u16SrcRptSize;      ///< 源地址重复区域大小
        uint16_t                u16DesRptSize;      ///< 目标地址重复区域大小
        uint32_t                u32DmaLlp;          ///< 连锁传输的链指针
        stc_dma_nseq_cfg_t      stcSrcNseqCfg;      ///< 不连续源地址
        stc_dma_nseq_cfg_t      stcDesNseqCfg;      ///< 不连续目标地址
        stc_dma_ch_cfg_t        stcDmaChCfg;        ///< 通道设置,见下面的结构体
    }stc_dma_config_t;

    typedef struct stc_dma_ch_cfg
    {
        en_dma_address_mode_t   enSrcInc;       ///< DMA 源地址模式(自增,自减,不变)
        en_dma_address_mode_t   enDesInc;       ///< DMA 目标地址模式(自增,自减,不变)
        en_functional_state_t   enSrcRptEn;     ///< 源地址重复使能
        en_functional_state_t   enDesRptEn;     ///< 目标地址重复使能
        en_functional_state_t   enSrcNseqEn;    ///< 不连续源地址使能
        en_functional_state_t   enDesNseqEn;    ///< 不连续目标地址使能
        en_functional_state_t   enLlpEn;        ///< 连锁传输使能
        en_dma_llp_mode_t       enLlpMd;        ///< 连锁传输模式
        en_dma_transfer_width_t enTrnWidth;     ///< 1个数据的宽度
        en_functional_state_t   enIntEn;        ///< 使能中断
    }stc_dma_ch_cfg_t;

    typedef struct stc_dma_nseq_cfg
    {
        uint32_t                u32Offset;      ///&l
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值