您好!
我使用嵌入式 c 语言和 CCS IDE 使用 cap1188编写了 msp432的代码。
首先、我尝试读取一个寄存器值。 从器件地址的写入模式开始通信、同时接收到 ACK。 但寄存器的值是直接发送0xFF (255)值。 当我更改 寄存器值 时、默认值仅发送0xFF。 使用0xff 寄存器地址值时、读取操作正常。
//将 USCI_B0配置为 I2C 模式
EUSCI_B0->CTLW0 |= EUSCI_B_CTLW0_SWRST;//启用软件复位
EUSCI_B0->CTLW0 = EUSCI_B_CTLW0_SWRST |//在复位模式下保持 eUSCI
EUSCI_B_CTLW0_MODE_3 |// I2C 模式
EUSCI_B_CTLW0_MST |//主控模式
EUSCI_B_CTLW0_SYNC |//同步模式
EUSCI_B_CTLW1_SWACK |//发送模式
EUSCI_B_CTLW0_ssel_SMCLK;// SMCLK
EUSCI_B0->BRW = 30;//波特率= SMCLK / 30 = 100kHz
EUSCI_B0->I2CSA = 0x0028;//从地址
EUSCI_B0->CTLW0 &=~EUSCI_B_CTLW0_SWRST;//从复位中释放 eUSCI
EUSCI_B0->IE |= EUSCI_B_IE_RXIE |//启用接收中断
EUSCI_B_IE_TXIE;//|//启用 Tx 模式中断