问答

汇集网友智慧,解决技术难题

Ld13705687562

TA的家园币:10  

  • 使用McBSP模拟SPI进行收发数据,通过DMA怎么进行发送呢

    我使用McBSP模拟SPI进行以太网CH395Q收发数据,通过DMA怎么配置了源地址和目的地址,源地址为我要发送的数据,目的地址为McbspaRegs.DXR1.all,那么接下来怎么样进行配置才能发送呢,还需要拉低片选使能和发送写命令吗EALLOW;/*发送DMA初始化*/DmaRegs.DMACTRL.bit.HARDRESET=1;//硬件复位__asm("NOP");//Only1NOPneededperDesignDmaRegs.CH1.MODE.bit.CHINTE=1;//通道中断使能DmaRegs.CH1.BURST_SIZE.all=0;//每次突发传输1+0个字DmaRegs.CH1.SRC_BURST_STEP=0;//指定处理触发数据时递增/递减后的源地址步长DmaRegs.CH1.DST_BURST_STEP=0;//指定处理触发数据时递增/递减后的目的地址步长DmaRegs.CH1.TRANSFER_SIZE=0;//指定数据传输大小为1+0(每次突发传输的循环次数)//在接收到一些数据后移动下一个字到buffer中DmaRegs.CH1.SRC_TRANSFER_STEP=1;//源传输步进寄存器(指针增/减步长)DmaRegs.CH1.DST_TRANSFER_STEP=0;//目的传输步进寄存器(指针增/减步长)DmaRegs.CH1.SRC_ADDR_SHADOW=(Uint32)&S_MCBSP_DMA.DMATxCash[0];//数据源地址影子寄存器DmaRegs.CH1.SRC_BEG_ADDR_SHADOW=(Uint32)&S_MCBSP_DMA.DMATxCash[0];//数据源开始地址影子寄存器DmaRegs.CH1.DST_ADDR_SHADOW=(Uint32)&McbspaRegs.DXR1.all;//目的地址起始影子寄存器=MCBSP数据传输寄存器位15-0DmaRegs.CH1.DST_BEG_ADDR_SHADOW=(Uint32)&McbspaRegs.DXR1.all;//目的地址起始影子寄存器=MCBSP数据传输寄存器位15-0DmaRegs.CH1.CONTROL.bit.PERINTCLR=1;//外设中断清除DmaRegs.CH1.CONTROL.bit.SYNCCLR=1;//清除同步标志位DmaRegs.CH1.CONTROL.bit.ERRCLR=1;//清除同步错误标志位DmaRegs.CH1.DST_WRAP_SIZE=0xFFFF;//目标换行大小寄存器DmaRegs.CH1.SRC_WRAP_SIZE=0xFFFF;//源目标换行大小寄存器DmaRegs.CH1.MODE.bit.SYNCE=0;//同步使能DmaRegs.CH1.MODE.bit.SYNCSEL=0;//同步模式DmaRegs.CH1.MODE.bit.CHINTE=1;//通道中断使能DmaRegs.CH1.MODE.bit

    DMA mcbsp 使用

    2025-10-11 0