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/EK-TM4C123GXL:I2C3配置

Guru**** 2609555 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/754275/ccs-ek-tm4c123gxl-i2c3-configuration

器件型号:EK-TM4C123GXL

工具/软件:Code Composer Studio

您好!  

我正在处理一个项目、该项目包含通过 I2C 配置触摸面板。 我必须使用 Tiva 连接器 J3的引脚 PD0 (SCL)和 PD1 (SDA)。  

通信似乎不能正常工作、因此我想澄清我所做的配置、以确保问题不会由此引起。

我正在使用 RTOS。 I2C 的初始化配置如下:

/*启动触摸 i2c 设备*/
I2C_Params_init (&i2cparams);
i2cparams.bitrate = I2C_100kHz;
句柄= I2C_open (EK_TM4C123GXL_I2C3、&i2cparams);
if (handle == NULL)
{
System_printf ("I2C 未打开");
} 

其中 EK_TM4C123GXL_I2C3定义 引用 EK-TM4C123GXL.h 中的以下类型:

/*!
*@def EK_TM4C123GXL_I2CName
*@EK-TM4C123GXL 开发板上 I2C 名称的简短枚举
*
/ typedef enum EK_TM4C123GXL_I2CName{
EK_TM4C123GXL_I2C0 = 0、
EK_TM4C123GXL_I2C3、EK_TM4C123GXL


名称} 

1) 1)我不确定我在这里是否正确理解 I2C3菜单是我想要配置的、您能确认吗?  

我在 main 中调用函数 Board_initI2C()。 我不理解此函数的代码(Board_initI2C,文件 EK-TM4C123GXL.c):  

/*
=== EK_TM4C123GXL_initI2C ===
/void
EK_TM4C123GXL_initI2C (void)
{
/* I2C1初始值*/
/*启用外设*/
SysCtlPeripheralEnable (SYSCTL_Periph_I2C1);

/*将相应的引脚配置为 I2C 而不是 GPIO。 *
GPIOPinConfigure (GPIO_PA6_I2C1SCL);
GPIOPinConfigure (GPIO_PA7_I2C1SDA);
GPIOPinTypeI2CSCL (GPIO_Porta_base、GPIO_PIN_6);
GPIOPinTypeI2C (GPIO_Porta_base、GPIO_PIN_7);

/* I2C3初始值*/
/*
*注意:TI-RTOS 示例为 SSI3或 I2C3配置引脚 PD0和 PD1。 因此、
*在中同时使用 I2C 和 SPI 驱动程序时会发生冲突
*应用程序。 修改此文件中的引脚多路复用设置并解析
*运行应用程序前发生冲突。
*
/*启用外设*/
SysCtlPeripheralEnable (SYSCTL_Periph_I2C3);

/*将相应的引脚配置为 I2C 而不是 GPIO。 *
GPIOPinConfigure (GPIO_PD0_I2C3SCL);
GPIOPinConfigure (GPIO_PD1_I2C3SDA);
GPIOPinTypeI2CSCL (GPIO_PORTD_BASE、GPIO_PIN_0);
GPIOPinTypeI2C (GPIO_PORTD_base、GPIO_PIN_1);

/*
*这些 GPIO 连接到 PD0和 PD1、需要置于 A 中
* GPIO 输入状态、以便它们不会干扰 I2C 通信。
*
GPIOPinTypeGPIOInput (GPIO_PORTB_BASE、GPIO_PIN_6);
GPIOPinTypeGPIOInput (GPIO_PORTB_BASE、GPIO_PIN_7);

I2C_init();
} 

该代码似乎使用引脚 PD0和 PD1配置 i2C3。

2) 2)我是否必须禁用写入 SSI3的同一文件中的配置?

否则、我会注意到在 Tiva 板上有两个 PD0和 PD1引脚。  

3)您如何知道您配置了一个或多个?  

提前感谢您的帮助!

此致、

Elisabeth Tixier

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

    只有一组 PD0和 PD1引脚、但它们可以使用多个功能之一。 您只能为其中一个功能配置这些引脚。 如果您为另一个功能配置它们、它将覆盖原始配置。

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

    尊敬的 Elisabeth:

    正如完整性检查一样、您是否可以确认您在 PD0和 PD1上使用了外部上拉电阻器?

    谢谢、
    Jas

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

    Tixier、

    我可以将其标记为已解决吗?

    Todd

    [12/20更新:将此标记为 TI 认为已解决、因为原始海报中没有回复]。