如标题所示。 我正在尝试让 I2C 在 MSP430F2272上工作、并且在脱离接地时遇到一些问题。 从本质上重新格式化的示例代码开始、我只是尝试在主模式下发送一条消息。 微控制器正在发送某些数据、但数据远未达到 I2C 标准(请参阅屏幕截图)。 我怀疑我缺少一些简单的东西。 请提供任何帮助。
谢谢!
Jason
void Initialize( void )(空)
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器
P3SEL |= 0x06; //将 I2C 引脚分配给 USCI_B0
UCB0CTL1 |= UCSWRST; //启用 SW 复位
UCB0CTL0 = UCMST+UCMODE_3+UCSYNC; // I2C 主器件、同步模式
UCB0CTL1 = UCSSEL_2+UCSWRST; //使用 SMCLK、保持软件复位
UCB0BR0 = 12; // fSCL = SMCLK/12 =~100kHz
UCB0BR1 = 0;
}//初始化
void SetSector (void)(空)
{
UCB0I2CSA = 0x70; //将从器件地址设置为多路复用器
UCB0CTL1 &=~UCSWRST; //清除 SW 复位,恢复运行
IE2 |= UCB0TXIE; //启用 TX 中断 //我们是否需要这种情况发送????
UCB0CTL1 |= UCTXSTT; // I2C TX、启动条件 //3.
UCB0TXBUF = 0x01; //写入 DAC 控制字节
UCB0CTL1 |= UCTXSTP; // I2C 停止条件
IFG2 &=~UCB0TXIFG; //清除 USCI_B0 TX 内部标志
UCB0CTL1 |= UCSWRST; //启用 SW 复位
}//SetSector

