这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请问PDMA每次传送都要重新设定吗?

共2条 1/1 1 跳转至

请问PDMA每次传送都要重新设定吗?

工程师
2024-11-09 21:56:17     打赏

Nuvoton 范例

M031_Series_BSP_CMSIS_V3.05.000
SPI_PDMA_LoopTest

main()

.......已经宣告 PDMA

    /*=======================================================================
      SPI master PDMA TX channel configuration:
      -----------------------------------------------------------------------
        Word length = 32 bits
        Transfer Count = DATA_COUNT
        Source = g_au32MasterToSlaveTestPattern
        Source Address = Incresing
        Destination = SPI0->TX
        Destination Address = Fixed
        Burst Type = Single Transfer
    =========================================================================*/
但是Re-trigger又重新宣告PDMA及SPI输出入等驱动???????

                    /* Re-trigger */
                    /* Master PDMA TX channel configuration */
                    /* Set transfer width (32 bits) and transfer count */
                    PDMA_SetTransferCnt(PDMA, SPI_MASTER_TX_DMA_CH, PDMA_WIDTH_32, DATA_COUNT);
                    /* Set request source; set basic mode. */
                    PDMA_SetTransferMode(PDMA, SPI_MASTER_TX_DMA_CH, PDMA_SPI0_TX, FALSE, 0);

                    /* Master PDMA RX channel configuration */
                    /* Set transfer width (32 bits) and transfer count */
                    PDMA_SetTransferCnt(PDMA, SPI_MASTER_RX_DMA_CH, PDMA_WIDTH_32, DATA_COUNT);
                    /* Set request source; set basic mode. */
                    PDMA_SetTransferMode(PDMA, SPI_MASTER_RX_DMA_CH, PDMA_SPI0_RX, FALSE, 0);

                    /* Enable master's DMA transfer function */
                    SPI_TRIGGER_TX_PDMA(SPI0);
                    SPI_TRIGGER_RX_PDMA(SPI0);




关键词: PDMA    

助工
2024-11-09 21:56:34     打赏
2楼

PDMA传输的操作模式分为基本模式和集散模式
基本模式就是按照描述符表里设置的传输规则将设定个数的数据搬运完成就结束了,会停止。
集散模式是按照第一张表的描述符搬运完指定数据后,会寻找第二张描述符表,按照第二张表的规则搬运,结束后会寻找下一张表,如果最后一张表指向的下一张表是第一张表。那么就可以实现循环搬运一直不停。
SPI_PDMA_LoopTest例程采用的是基本模式,如果想要使用集散模式可以参考PDMA_ScatterGather或PDMA_ScatterGather_PingPongBuffer例程 


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]