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例程
PDMA用于SPI传输时,每次传输前并不需要重新设定。在Nuvoton范例M031_Series_BSP_CMSIS_V3.05.000SPI_PDMA_LoopTestmain()函数中,PDMA的配置已经在宣告时完成,包括SPI主机PDMA TX通道的配置,包括字长为32位等。当需要进行SPI传输时,只需要通过PDMA开始传输的指令即可,无需重新设定PDMA的配置。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏50分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 | |
【换取手持示波器】树莓派PICO逻辑分析仪被打赏16分 | |
【分享评测,赢取加热台】教你五分钟本地部署蒸馏版本的DeepSeekR1-7B被打赏12分 | |
【换取手持示波器】蓝牙音箱更换电池被打赏8分 | |
【换取手持示波器】鼠标更换微动开关被打赏10分 | |
【我要开发板】4.传感器移植被打赏50分 |