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/MSP430G2553:在MSP430中尝试I2C,I'm遇到了一些非常奇怪的问题

Guru**** 2582405 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/615576/ccs-msp430g2553-trying-i2c-with-the-msp430-and-i-m-running-into-some-very-strange-problems

部件号:MSP430G2553

工具/软件:Code Composer Studio

我尝试学习使用加速计传感器,MPU6050和MSP430的I2C通信。 但是,我遇到了一个奇怪的问题,只是尝试传输我的启动命令。 我的代码如下

#include <MSP4S.h>
#define SCL BIT6.
#define SDA BIT7.


unsigned char read(char);
void ChangeAddr (字符);
void SetUART(void);
void UARTSendArray (unsigned char *TxArray,unsigned char ArrayLength);

静态易失性int INT_ENABLE;
/*
主要c
*/
int main (void){
未签名的char AccelData;

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

DCOCTL = CALDCO_16MHz;
BCSCTL1 = CALC1_16MHz;

//BCSCTL1=CALC1_8MHZ;
//DCOCTL=CALDCO_8MHZ;
//BCSCTL2|=divs_2;//SMCLK除法器=4;


UCB0CTL0 |= UCMST + UCMODE1 + UCMODE0 + UCSYNC;
UCB0CTL1 || UCSSEL0 + UCSSEL1;

UCB0BR0 = 160;
UCB0BR1 = 0;

UCB0I2CSA = 0x68;

P1SEL || SCL + SDA;
P1SEL2 |= SCL + SDA;
//对于X68,mpu6050上的ado引脚将被绑定为低电平,否则如果为1,则为X69
UCB0CTL1 &=~UCSWRST;

//SetUART();


而(1){
UCB0CTL1 || UCTXSTT + UCTR;
}

}

 

我在这个链接 https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/14.489万上使用了这个示例 ,用于我的代码和尝试匹配我的波形。 。 我在上面的示例中的代码只是重复启动命令以在范围内查看它,但是我的代码的结果通常如下所示。

 

我不知道我做了什么错,我使用和修改的TI示例中的许多代码都与此非常相似。 我非常感谢您对我可能做错的事情有任何见解。 非常感谢

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在进行更改之前,您是否能够评估TI代码示例? 您的I2C上拉电阻值是多少? 您的测试用例有点奇怪,您至少应确保在发送下一个(重复启动)之前发送了之前的启动条件。 在线社区还提供了多个MSP430 MPU6050代码示例/项目,您可以参考这些示例/项目。

    此致,
    Ryan