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.

[参考译文] MSP432E401Y:I2C 的读取和写入函数

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1371165/msp432e401y-read-and-write-function-for-i2c

器件型号:MSP432E401Y
主题中讨论的其他器件:SysConfig

工具与软件:

大家好、我正在学习如何为 PN4和 PN5引脚配置 I2C2、我有需要读取和写入的从器件。
您能帮助进行相同的配置吗?

我尝试了 Resource Explorer 中的示例、执行了相同的步骤、但无法对上述引脚执行此操作。

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

    您好!

     您指的是哪个示例?

     如果使用非 RTOS 裸机示例、例如 i2c_mastermode_simple_transfer_MSP_EXP432E401Y_nortos_ccs、则需要将所有引用从 I2C1更改为 I2C2。 您还需要更改引脚多路复用。 请参阅 pinmux 配置的以下代码片段。 同样、您需要仔细检查整个示例源代码、以在您看到 I2C1到 I2C2的任何位置进行更改。  

    发件人:

    /* Enable clocks to GPIO Port G and configure pins as I2C */
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
    while(!(MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOG)))
    {
    }

    MAP_GPIOPinConfigure(GPIO_PG0_I2C1SCL);
    MAP_GPIOPinConfigure(GPIO_PG1_I2C1SDA);
    MAP_GPIOPinTypeI2C(GPIO_PORTG_BASE, GPIO_PIN_1);
    MAP_GPIOPinTypeI2CSCL(GPIO_PORTG_BASE, GPIO_PIN_0);

    /* Since there are no board pull up's we shall enable the weak internal
    * pull up */
    GPIOG->PUR |= (GPIO_PIN_1 | GPIO_PIN_0);

    至:

    /* Enable clocks to GPIO Port N and configure pins as I2C */
    MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
    while(!(MAP_SysCtlPeripheralReady(SYSCTL_PERIPH_GPION)))
    {
    }

    MAP_GPIOPinConfigure(GPIO_PN5_I2C2SCL);
    MAP_GPIOPinConfigure(GPIO_PN4_I2C2SDA);
    MAP_GPIOPinTypeI2C(GPIO_PORTN_BASE, GPIO_PIN_4);
    MAP_GPIOPinTypeI2CSCL(GPIO_PORTN_BASE, GPIO_PIN_5);

    /* Since there are no board pull up's we shall enable the weak internal
    * pull up */
    GPION->PUR |= (GPIO_PIN_5 | GPIO_PIN_4);

    如果将 SimpleLink SDK 与 TI-RTOS 配合使用、则可以参考 i2ctmp_MSP_EXP432E401Y_tirtos_ccs 示例。 该示例使用已有的 I2C2模块、并且使用 SysConfig 工具配置了引脚多路复用器。  

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

    您好!

    我已将中的 I2C1更改为 I2C2

    I2C_mastermode_simple_transfer_MSP_EXP432E401Y_nortos_ccs 并刷写到主器件中

    我已将中的 I2C1更改为 I2C2

    I2C_slavemode_simple_transfer_MSP_EXP432E401Y_nortos_ccs 并刷写到从器件中、

    我看到 MCU 之间没有通信。

    我在 MCU 之间仅连接了 SDA 和 SCL 线。 我在做什么不对吗?

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

    一些问题:

    -您在 SCL 和 SDA 总线上都有上拉电阻器吗?

    -如果你在没有任何修改的情况下运行主机和从机示例,你看到了什么不同? 如果它按原样工作、则修改后的 I2C2代码中的某些内容必须没有正确配置。  

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

    已使用内部上拉电阻器。

    主器件和从器件的代码都已直接从 I2C1的 Resource Explorer 中使用(即 PG0和 PG1)。

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

    已使用内部上拉电阻器。

    [/报价]

    您不能依赖内部拉取。 您必须使用外部上拉电阻器。  

x 出现错误。请重试或与管理员联系。