想要用msp430 f2132读adxl345加速度计的数据,用的是自带的硬件i2c,遇到的问题是430发送start条件后,UCTXSTT不会清零,传感器无应答。代码是修改的ti提供的例程,部分代码: while (1)
{
UCB0I2CSA = 0x53;
UCB0CTL1 |= UCTXSTT;
while (UCB0CTL1 & UCTXSTT); //UCTXSTT没有清零
__bis_SR_register(CPUOFF + GIE);
}
}问题是i2c要求主机发送start后还要发送7位从机地址+写(0),还需要发送寄存器地址,然后再设置为读,可是TI给的例程中没有这一步,是因为硬件i2c可以自动在发送start条件后发送8位写地址吗? 那为什么这个STT无法清零?
还有应该如何看sda和sclk的波形?有示波器但怎么抓那几十微秒的波形呢?
新手刚接触msp430,所以问的有点多,望大神解答。。
[
本帖最后由 carmackzhang 于 2012-7-7 21:39 编辑 ]
此帖出自
小平头技术问答
如果想看I2C的波形,可以设置CLK的下降沿做触发。
STT标志在从机给出ACK信号后自动清零。
你如果检测不到STT位清零可能是从机没有给出ACK信号
一周热门 更多>