主题中讨论的其他器件:TM4C123
我很困惑...
I2cStateMachine.slaveAddress = MCP23017_BUS_ADDRESS_AZ;
I2cStateMachine.registerAddress = MCP23017_GPIOA_DIR_REG;
memset (&I2cStateMachine.dataBytes、0、2);
I2cStateMachine.dataSize = 2;
IntTrigger (INT_I2C0);
while (I2cStateMachine.currentState!= I2C_State_stop);
I2cStateMachine.currentState = I2C_State_Idle;
int i = 0;
while (i < 1000000){i++;}
当我运行以下代码时、我总共得到了由 I2C 主器件生成的五个中断。 第一个是0x00、我假设它是用于启动事务的 IntTrigger (INT_I2C0)调用的结果。 我将发送两个字节。 第一个字节是远程器件的寄存器地址、第二个字节是要写入该寄存器的数据。 我的中断处理程序再被调用四次、所有调用都使用中断位0x0001
#define I2C_MASTER_INT_DATA 0x00000001 //数据中断 <= 来自 driverlib 中的 I2c.h 文件。
我只需要两个中断、每个字节完成时一个中断。 我缺少什么??