请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LS1224 工具/软件:Code Composer Studio
您好!
我尝试将 MibSPI 与 DMA 配合使用、但它不起作用。
这是我的代码和项目。
/**@file sys_main.c *@简要应用程序主文件 *@日期2017年7月7日 *@版本04.07.00 * *此文件包含一个空的主函数 *,可用于应用程序。 */ * 版权所有(C) 2009-2016德州仪器(TI)公司- www.ti.com * * *只要 符合以下条件*,就允许以源代码和二进制形式重新分发和使用,无论是否进行*修改: * *源代码的重新分发必须保留上述版权 声明*、此条件列表和以下免责声明。 * *二进制形式的再发行必须在 * 发行版随附的*文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明。 * *未经 事先书面许可、不得使用德州仪器公司的名称或*其贡献者的名称认可或推广从本软件派生的产品*。 * *本软件由版权所有者和贡献者 *按原样"提供、 且不承认任何明示或暗示的保证、包括但不限于*特定用途*的适销性和适用性的暗示保证。 在任何情况下、版权 *所有者或贡献者都不对任何直接、间接、偶然、 *特殊、模范、 或相应的损害(包括但不 限于*采购替代产品或服务;丧失使用、 *数据或利润; 或业务中断)、但出于 任何*责任理论、无论是合同、严格责任还是侵权 行为*(包括疏忽或其他原因)、即使 被告知可能会造成此类损坏、也是出于此类责任理论。 * */ /*用户代码开始(0)*/ /*用户代码结束*/ /*包含文件*/ #include "sys_common.h" //*用户代码开始(1)*/ #include #include /*用户代码结束*/** @fn void main (void) *@简短应用程序主函数 *@注意默认情况下,此函数为空。 * *此函数在启动后调用。 *用户可以使用此函数来实现应用程序。 */ *用户代码开始(2)*/ #define D_SIZE 64 uint16 TX_DATA[D_SIZE]={0}; uint16 Rx_DATA[D_SIZE]={0}; g_dmaCTRL g_dmaCTRL_TX; g_dmaCTRL g_dmaCTRL_Rx; //用户代码结束* /*(void 3)*/用户代码开始(3) sint32 i; 对于(I = 0;I < D_SIZE;I++) { TX_DATA[i]= i; } mibspiInit(); mibspiEnableLoopback (mibspiREG1、Analog、LBK); dmaEnable(); //mibspiSetData (mibspiREG1、0、TX_DATA); dmaReqAssign (DMA_CH0、1U); G_dmaCTRL_TX.Sadd =(uint32)(&TX_DATA); G_dmaCTRL_TX.DADD =(uint32)(&(mibspiRAM1->TX[0]); G_dmaCTRL_TX.CHCTRL = DMA_CH0; G_dmaCTRL_TX.FRCNT = 1U; G_dmaCTRL_TX.ELCNT = D_SIZE; G_dmaCTRL_TX.ELDOFFSET = 4U; G_dmaCTRL_TX.ELSOFFSET = 0U; G_dmaCTRL_TX.FRDOFFSET = 0U; G_dmaCTRL_TX.FRSOFFSET = 0U; G_dmaCTRL_TX.PORTASGN = 4U; G_dmaCTRL_TX.RDSIZE = ACCESS_16_BIT; G_dmaCTRL_TX.WRSIZE = ACCESS_16_BIT; G_dmaCTRL_TX.tType = FRAME_TRANSFRAME; G_dmaCTRL_TX.ADDMODERD = ADDR_INC1; G_dmaCTRL_TX.ADDMODEWR = ADDR_OFFSET; G_dmaCTRL_TX.AUTOINIT = AUTOINIT_ON; dmaSetCtrlPacket (DMA_CH0、g_dmaCTRL_TX); dmaSetChEnable (DMA_CH0、DMA_HW); mibspiREG1->DMACTRL[0]|=(((1 << 4)| 0)<< 16); mibspiREG1->DMACTRL[0]|= 0x8000C000u; mibspiREG1->DMACTRL[0]|=(0 << 8)|(0 << 24); mibspiTransfer (mibspiREG1,0); while (!(mibspiIsTransferComplete (mibspiREG1、0))){} mibspiGetData (mibspiREG1、0、Rx_data); while (true){} /*用户代码结束*/ //return 0; } /*用户代码开始(4)*/ /*用户代码结束*/