3285|0

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

tm4c129的I2C能用uDMA传输数据吗?? [复制链接]

RT,如果可以,这样初始化为什么为什么udma一直为STOP状态
        SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1);
       
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
       
        GPIOPinConfigure(GPIO_PG0_I2C1SCL);
        GPIOPinConfigure(GPIO_PG1_I2C1SDA);  

         GPIOPinTypeI2CSCL(GPIO_PORTG_BASE, GPIO_PIN_0);
   GPIOPinTypeI2C(GPIO_PORTG_BASE,  GPIO_PIN_1 );

        I2CMasterInitExpClk(I2C1_BASE, ui32SysClock, true);                                //开启时钟
        HWREG(I2C1_BASE + I2C_O_MTPR) = 0x09;

        I2CMasterEnable(I2C1_BASE);
                       
        I2CTxFIFOConfigSet(I2C1_BASE,I2C_FIFO_CFG_TX_MASTER_DMA);       
//        I2CTxFIFOConfigSet(I2C1_BASE,I2C_FIFO_CFG_TX_MASTER);

//        I2CMasterBurstLengthSet(I2C1_BASE,noise_NUM);

        I2CMasterSlaveAddrSet(I2C1_BASE, 0x4D, false);                                                //从机地址
       
        //----------------------------------------------
        I2CMasterIntEnable(I2C1_BASE);
       
        I2CMasterIntEnableEx(I2C1_BASE,I2C_MASTER_INT_TX_DMA_DONE);//|I2C_MASTER_INT_TX_FIFO_EMPTY); //每次传输完成产生中断
        //----------------------------------------------
                               
        ROM_uDMAChannelAttributeDisable(UDMA_CHANNEL_UART0TX,                        //i2c1与uart公用一个UDMA通道                                                                                                                                        UDMA_ATTR_USEBURST |
                                                                                                                                        UDMA_ATTR_HIGH_PRIORITY |
                                                                                                                                        UDMA_ATTR_REQMASK);

//        ROM_uDMAChannelAttributeEnable(UDMA_CHANNEL_UART0TX,UDMA_ATTR_USEBURST);  //ÕâÀï²»ÓÃÌØÊâÉèÖÃ
                                                                                                                       
        ROM_uDMAChannelControlSet(UDMA_CHANNEL_UART0TX | UDMA_PRI_SELECT,
                                                                                                UDMA_SIZE_8 | UDMA_SRC_INC_8 | UDMA_DST_INC_NONE | UDMA_ARB_4);
                                                                                               
        ROM_uDMAChannelTransferSet(UDMA_CHANNEL_UART0TX| UDMA_PRI_SELECT,
                                                                                                        UDMA_MODE_BASIC,
                                                                                                 (void *)DataTx,
                                                                                                 (void *)(I2C1_BASE + I2C_O_FIFODATA),
                                                                                                 noise_NUM);
                                                                                                 
        ROM_IntEnable(INT_UDMAERR);
       
        ROM_IntEnable(INT_UDMA);
               
        ROM_uDMAChannelEnable(UDMA_CHANNEL_UART0TX );
       
        ROM_uDMAChannelAssign(UDMA_CH9_I2C1TX);

        I2CMasterControl(I2C1_BASE,  I2C_MASTER_CMD_FIFO_BURST_SEND_START);                        //¿ªÊ¼²úÉúÔëÉù
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表