msp430f2132硬件i2c 读传感器数据无应答

2019-03-24 14:04发布

想要用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 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Triton.zhang
1楼-- · 2019-03-24 20:35
设置UCTXSTT位之后,硬件I2C模块自动发送7位地址+读写位。STT不由硬件清零。
如果想看I2C的波形,可以设置CLK的下降沿做触发。
carmackzhang
2楼-- · 2019-03-24 22:36
 精彩回答 2  元偷偷看……
Triton.zhang
3楼-- · 2019-03-25 03:20
主接收模式下设置UCTXSTT会自动发送7位地址+写。
STT标志在从机给出ACK信号后自动清零。
你如果检测不到STT位清零可能是从机没有给出ACK信号

一周热门 更多>

相关问题

    相关文章