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.

MSP432P401R: I2C

Part Number: MSP432P401R

使用ccs中的教程, ,msp432P401R的I2C时钟信号没有输出波形

  • 请问您现在硬件使用的是什么?使用的TI的launchpad还是自己的板子?另外是否有接I2C的从机?I2C的上拉电阻是否有接?

    请您先详细说明一下情况,谢谢

  • 我使用的时TI的launchpad的,接有I2C从机,这个从机是一个0.96寸的OLED屏,然后出现的问题就是向OLED屏写数据都会出现NK,用示波器测量端口输出波形只有噪声。将官网的代码烧入板子也是这个样子。

  • 对了,还忘了说了,我使用的TI的sdk开发,例程也sdk中的例程。

  • 例程也sdk中的例程。

    请问您使用的是哪个例程呢?0.96寸的OLED屏的话,特定从机您需要自己来修改例程中的代码

    另外一般I2C总线是需要接上拉电阻的

    若是可以的话,请给出您的硬件连接图的照片以及示波器的截图,谢谢

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /*main.c*/
    #include <driverlib.h>
    #include "oledfont.h"
    /* Standard Includes */
    #include <stdint.h>
    #include <stdbool.h>
    #define OLED_IIC_ADDRESS 0x78 // OLED
    /**
    * @brief IIC
    */
    static const eUSCI_I2C_MasterConfig i2cConfig =
    {
    EUSCI_B_I2C_CLOCKSOURCE_SMCLK, // SMCLK Clock Source
    48000000, // SMCLK = 48MHz
    EUSCI_B_I2C_SET_DATA_RATE_400KBPS, // Desired I2C Clock of 400khz
    0, // No byte counter threshold
    EUSCI_B_I2C_NO_AUTO_STOP // No Autostop
    };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /*oledfont.h*/
    #ifndef __OLEDFONT_H
    #define __OLEDFONT_H
    #ifdef __cplusplus
    extern "C" {
    #endif
    /************************************6*8************************************/
    const unsigned char F6x8[][6] = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp 0
    { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! 1
    { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // " 2
    { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # 3
    { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ 4
    { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // % 5
    { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // & 6
    { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' 7
    { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( 8
    { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) 9
    { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // * 10
    { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // + 11
    { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // , 12
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 图片上可能看不清楚,单片机的P1.6连接OLED的SDA接口,P1.7连接OLED的SCL接口,程序测试的就是出现一个EUSCI_B_I2C_NAK_INTERRUPT的中断,但是这个OLED是没有问题的,我用STM32测试了一下是能够显示的。那个OLED的SCL和SDA都内部有一个4.7K的上拉电阻。