工具/软件: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