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.
工具/软件:Code Composer Studio
这是hariirkishna。当我在adxl345加速度计中读寄存器值时遇到了问题。。。这是为访问这些值而写的代码。。。从第一次读取正确的值,但再次确认重新启动程序,然后我得到0x00值为0。。。然后我写了 正确的停止条件also...please检查并告诉我问题在我的代码中的位置...
#include <MSP4S.h>
易失性无符号字符RXData;
内部主(无效)
{
WDTCTL = WDTPW | WDTHOLD;
//配置GPIO
P1OUT &=~BIT0;//透明的WFP 1.0 输出锁存器
P1DIR || BIT0;//用于LED
P1SEL1 || BIT6 | BIT7;
PM5CTL0 &=~LOCKLPM2;
__bis_sr_register( GIE);
UCB0CTLW0 |= UCSWRST;//已启用软件重置
UCB0CTLW0 |= UCMODE_3| UCMST | UCSYNC;// I2C模式,主模式,同步
UCB0CTLW1 |= UCASTP_2;//生成自动停止
UCB0BRW = 0x0008;//波特率= SMCLK / 8
UCB0I2CSA = 0x53;//从属地址
UCB0CTL1 &=~UCSWRST;
同时(1)
{
//UCB0CTLW0 &=~UCTXSTP;
while (UCB0CTL1和UCTXSTP);//确保已发送停止条件
UCB0CTL1 || UCTXSTT+UCTR;
P1OUT|=BIT0;
UCB0TXBUF=0xA6;//站点模式下的从属地址
(UCB0STATW&UCBUSY);
UCB0TXBUF=0x00;//注册我要在adxl345中阅读的地址
(UCB0STATW&UCBUSY);
UCB0CTL1 &=~UCTR;// I2C读取操作
UCB0CTL1 || UCTXSTT;
UCB0TXBUF=0xA7;//读取模式下的从属地址
UCB0IE&=~UCTXIE;
(UCB0STATW&UCBUSY);
UCB0IE|=UCRXIE;
}
}
#if defined(__TI_Compiler_version__)|| defined(__IAR_SYSTEMS _ICC__)
#pragma vector = USI_B0_vector
__interrupt void USI_B0_ISR(void)
#Elif已定义(__GMNU__)
void __attribute__((interrupt (USI_B0_vector)) USI_B0_ISR (void)
#否则
错误编译器不受支持!
#endif
{
Switch(__偶 数_in_range(UCB0IV, USI_I2C_UCBIT9IFG))
{
案例USI_NONE:Break;// Vector 0:no interrupts
案例USI_I2C_UCALIFG:中断;//矢量2:ALIFG
案例USI_I2C_UCNACKIFG://矢量4:NACKIFG
UCB0CTL1 || UCTXSTT;
中断;
案例USI_I2C_UCSTIFG:中断;//矢量6:STTIFG
案例USI_I2C_UCSTPIFG:中断;//矢量8:STPIFG
案例USI_I2C_UCRXIFG3:中断;//矢量10:RXIFG3
案例USI_I2C_UCTXIFG3:中断;//矢量12:TXIFG3
案例USI_I2C_UCRXIFG2:中断;//矢量14:RXIFG2
案例USI_I2C_UCTXIFG2:中断;//矢量16:TXIFG2
案例USI_I2C_UCRXIFG1:中断;//矢量18:RXIFG1
案例USI_I2C_UCTXIFG1:中断;//矢量20:TXIFG1
案例USI_I2C_UCRXIFG0://矢量22:RXIFG0
RXData = UCB0RXBUF;//读数后,在condition上静音
期间(UCB0CTL1和UCTXSTT);
UCB0CTLW0&=~UCTXSTP;
__BIC_SR_REGISTER_ON_EXIT (LPM0_bits);//退出LPM0
中断;
案例USI_I2C_UCTXIFG0:中断;//矢量24:TXIFG0
案例USI_I2C_UCBCNTIFG://矢量26:BCNTIFG
P1OUT ^= BIT0;//在WFP 1.0 上切换LED
中断;
案例USI_I2C_UCCLTOIFG:中断;//矢量28:时钟低超时
案例USI_I2C_UCBIT9IFG:中断;//矢量30:第9位
默认值:中断;
}
}e2e.ti.com/.../0488.main.ce2e.ti.com/.../ADXL345-_2D00_-Accelerometer.pdf
你好 ,hariirkishna,
请参考所附代码。
此致,
林氏六音