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);
共2条
1/1 1 跳转至页
请问PDMA每次传送都要重新设定吗?
关键词: PDMA
2楼
PDMA传输的操作模式分为基本模式和集散模式
基本模式就是按照描述符表里设置的传输规则将设定个数的数据搬运完成就结束了,会停止。
集散模式是按照第一张表的描述符搬运完指定数据后,会寻找第二张描述符表,按照第二张表的规则搬运,结束后会寻找下一张表,如果最后一张表指向的下一张表是第一张表。那么就可以实现循环搬运一直不停。
SPI_PDMA_LoopTest例程采用的是基本模式,如果想要使用集散模式可以参考PDMA_ScatterGather或PDMA_ScatterGather_PingPongBuffer例程
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
| OK1126B-S开发板的脚本编程及应用设计被打赏¥27元 | |
| 5v升压8.4v两节锂电池充电芯片,针对同步和异步的IC测试被打赏¥35元 | |
| 【S32K3XX】S32DS LPI2C 配置失败问题解决被打赏¥22元 | |
| 【S32K3XX】FLASH 的 DID 保护机制被打赏¥19元 | |
| OK1126B-S开发板串口通信及其使用被打赏¥18元 | |
| 【S32K3XX】多核 CORE ID 获取被打赏¥18元 | |
| OK1126B-S开发板的GPIO资源及其使用被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动屏幕(Arduino IDE环境)被打赏¥23元 | |
我要赚赏金
