请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F5529 您好!
我能够从 I2C 总线上的从器件读取数据。 我的代码如下所示:
//为 I2C P3SEL 选择引脚|= BIT0 + BIT1; //启用 SW 复位、中止 I2C 总线并使用 SMCLK UCB0CTL1 = UCSSEL_2 + UCSWRST; // I2C 主控、同步模式 UCB0CTL0 = UCMST | UCMODE_3 | UCSYNC; // UCB0BR1的高字节分频 器= UCB0CTL0;// //时钟= SMCLK / 10 = 100KHz UCB0BR0 = 10; //清除 SW 复位,恢复操作 UCB0CTL1 &=~UCSWRST; //启用 STT、STP、RX 和 TX 中断 UCB0IE |= UCNACKIE + UCSTPIE + UCRXIE + UCTXIE; // UCB0IE =从地址设置 //确保在 (UCB0CTL1 & UCTXSTP)期间发送停止条件; //进入读取模式 UCB0CTL1 &=~UCTR; // I2C 开始条件 UCB0CTL1 |= UCTXSTT;
如何指定寄存器地址? 上面的代码似乎默认为寄存器地址0。
我在发送起始位后尝试写入寄存器地址:
UCB0TXBUF = REGISTER_ADDRESS;
但它不会产生影响。 返回的值相同。