-
求助:AC7801X芯片I2C通信主机端收到的是从机的NACK
芯片用的Autochip的AC78013MCU,现在MCU配置为从机模式,主机是安卓系统的。MCU和安卓系统I2C通信。我从机端参考代码是:ac7801xSampleCode20200729\ac7801xSampleCode20200729\i2c\SampleCode\5I2C_Slave_DMA\I2C_Slave\User下的i2c.c。目前主机和从机通信是没问题的主机发送的命令我从机都能收到,但是主机那边发送完命令却没收到从机的ACK,会报错。请问是我从机这边配置有问题吗?配置都是直接从参考代码复制过来的。voidUTILS_I2cInit(I2C_Type*pI2cInst,I2C_ModeTypemode,uint16_tslaveAddr){I2C_ConfigTypei2cConfig;/*清零结构体变量.*/memset(&i2cConfig,0x00,sizeof(i2cConfig));/*无论是主机还是从机模式都需要配置的参数.*/i2cConfig.mode=mode;/*设置主从机模式.*/i2cConfig.extAddrEn=DISABLE;/*10bit扩展地址禁能.*/i2cConfig.dmaRxEn=DISABLE;/*设置DMA接收数据.*/i2cConfig.dmaTxEn=DISABLE;/*设置DMA发送数据.*/i2cConfig.interruptEn=DISABLE;/*I2C中断,BND/SAMF/ARBLOST.*/i2cConfig.nackInterruptEn=DISABLE;/*NACK中断.*/i2cConfig.ssInterruptEn=DISABLE;/*总线start或stop中断.*/i2cConfig.i2cEn=ENABLE;/*使能模块.*/i2cConfig.callBack=NULL;/*中断回调函数.*//*主机模式需要配置的参数,配置成从机模式可忽略.*//*Fscl=Fbclk/(((SAMPLE_CNT_DIV+1)*(STEP_CNT_DIV+1))*2)*/i2cConfig.masterConfig.sampleCnt=4;/*设置波特率为100Kbps,bandrate=(24M/(5*6*2))=400Kbps.*/i2cConfig.masterConfig.stepCnt=5;i2cConfig.masterConfig.ARBEn=ENABLE;/*设置主机仲裁功能.*/i2cConfig.masterConfig.SYNCEn=ENABLE;/*设置主机SCL同步功能.*//*从机模式需要配置的参数,配置成主机模式可忽略.*/i2cConfig.slaveConfig.slaveAddr=slaveAddr;/*从机地址.*/i2cConfig.slaveConfig.slaveRangeAddr=0;/*从机范围地址.*/i2cConfig.slaveConfig.glitchFilterCnt=0;/*毛
2021-02-19 1