This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR5969:使用i2c从adxl345中的寄存器读取数据时出现问题(MSP430FR5969)

Guru**** 2224720 points
Other Parts Discussed in Thread: MSP430FR5969
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/666546/ccs-msp430fr5969-problem-in-reading-data-from-register-in-adxl345-using-i2c-msp430fr5969

部件号:MSP430FR5969

工具/软件:Code Composer Studio

您好,

我正在使用i2c协议将MSP430FR5969与ADXL345 (加速计)连接起来。 我正在尝试从寄存器0x00读取包含0XE5的数据,但我没有得到任何输出,代码如下所示

#include <MSP4S.h>

易失性无符号字符RXData;

内部主(无效)

WDTCTL = WDTPW | WDTHOLD;

//配置GPIO
P1OUT &=~BIT0;//透明的WFP 1.0 输出锁存器
P1DIR || BIT0;//用于LED
P1SEL1 || BIT6 | BIT7;// I2C引脚

//禁用GPIO开机默认高阻抗模式以激活
//以前配置的端口设置
PM5CTL0 &=~LOCKLPM2;

//为I2C模式配置USI_B0
UCB0CTLW0 |= UCSWRST;//已启用软件重置
UCB0CTLW0 |= UCMODE_3| UCMST | UCSYNC;// I2C模式,主模式,同步
UCB0BRW = 0x0008;//波特率= SMCLK / 8
UCB0I2CSA = 0x0053;//从属地址
UCB0CTL1 &=~UCSWRST;
UCB0IE |= UCRXIE | UCNACKIE;

同时(1)

__delay_cycles (2000年);
// while (UCB0CTL1和UCTXSTP);//确保已发送停止条件
UCB0CTL1 || UCTXSTP;// I2C停止条件
UCB0CTL1 || UCT|UCTXSTT;// I2C启动条件
UCB0TXBUF=0XA6;//从属地址+写入
while (UCB0STATW&=UCBUSY);
__delay_cycles (2000年);
UCB0TXBUF=0x00;//注册地址
while (UCB0STATW&=UCBUSY);
__delay_cycles (2000年);

UCB0CTL1 || UCT|UCTXSTT;// I2C启动条件
UCB0TXBUF=0XA7;//从属地址+读取
while (UCB0STATW&=UCBUSY);
__delay_cycles (2000年);
UCB0CTL1 &=~UCTR;
RXData = UCB0RXBUF;

__bis_sr_register(GIE);//输入带中断的LPM0
}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 ,Ravi:

    请将附加的驱动程序作为参考。

    此致,

    Linge2e.ti.com/.../hal_5F00_ADXL345.c

    e2e.ti.com/.../hal_5F00_ADXL345.h