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.

[参考译文] MSP430FR6989:MSP430FR6989:DiverLib:I2C

Guru**** 2512005 points
Other Parts Discussed in Thread: MSP430FR6989

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/761802/msp430fr6989-msp430fr6989-diverlib-i2c

器件型号:MSP430FR6989

我在 MSP430FR6989 Launch Pad 开发板上使用 I2C 接口。  UCB1SDA 功能在 P3.1、P4.0和 P4.6上可用、 而 UCB.S 功能在 P3.2、P4.1和 P4.7上可用。

我正在使用 UCB1SDA = P4.0和 UCB.S = P4.1。

问题1. 如何确保已针对 P4.0和 P4.1正确配置 UCB1 I2C 功能。

目前、我将与 MSP430FR6989 driverlib I2C 驱动程序一起执行以下步骤、

1。  

//将 P4.0和 P4.1设置为主模块功能。
GPIO_setPeripheralModuleFunctionInputPin (
GPIO_PORT_P4、
GPIO_PIN0 + GPIO_PIN1、
GPIO_PRIMARY_MODULE_FUNCTION
);

2.初始化主设备(在初始化期间执行步骤2-4)

i2cParams.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
i2cParams.i2cClk = 2000000;// 2MHz
i2cParams.datarate = EUSCI_B_I2C_SET_DATA_RATE 100KBPS;
i2cParams.byteCounterThreshold = 0;
i2cParams.autoSTOPGeneration = EUSCI_B_I2C_NO_AUTO_STOP;  

EUSCI_B_I2C_initMaster (EUSCI_B1_BASE、&i2cParams);

3.设置从机地址(7位设备地址)
EUSCI_B_I2C_setSlaveAddress (EUSCI_B1_BASE、I2C_WRITE_ADDR >> 1);

4.//启用 I2C
EUSCI_B_I2C_ENABLE (EUSCI_B1_BASE);

5.从 Wrte 到 I2C ( 当 Tx 中断发生时启用 Tx 中断以及第一个字节和第二个 senCOND 字节)

EUSCI_B_I2C_enableInterrupt (EUSCI_B1_base、EUSCI_B_I2C_Transmit、INTERRUPT0);
EUSCI_B_I2C_masterSendMultiByteStart (EUSCI_B1_base、txData.txBuffer[0]);

程序在发送第一个字节时卡住  

IN 函数 EUSCI_B_I2C_masterSendMultiByteStart()   

代码是  

 while (!(HWREG16 (baseAddress + OFS_UCBxIFG)& UCTXIFG))
 {
 ;

问题2. 上述顺序是否正确? 正确的指令序列是什么?

提前感谢。

Rajaram

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

    我想您只需连接一个从器件或另一个配置为从器件的 MSP Launchpad 即可对其进行测试。 如果您将其连接到逻辑分析仪并查看信号、也可能会出现这种情况。

    2、 这里提供了一些寄存器级 USCI B I2C 示例:dev.ti.com/.../

    这些函数不使用 driverlib 函数、但它们可以带您完成整个流程。

    谢谢、
    JD