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.

[参考译文] TM4C1294NCPDT:I2C init 中缺少什么?

Guru**** 2609285 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/754735/tm4c1294ncpdt-what-is-missing-in-my-i2c-init

器件型号:TM4C1294NCPDT

我正在使用 TM4C1232的 I2C 模块2、我在线挑选了一些样片、但它在 I2CMasterInitExpClk 掉了、有人能给我指针还是一个工作示例? 谢谢!

_________________________________________

ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |
SYSCTL_OSC_MAIN |
SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480)、120000000);


SysCtlDelay (100);


SysCtlPeripheralEnable (SYSCTL_Periph_I2C2);
SysCtlPeripheralReset (SYSCTL_Periph_I2C2);

SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
GPIOPinConfigure (GPIO_PN5_I2C2SCL);
GPIOPinConfigure (GPIO_PN4_I2C2SDA);

GPIOPinTypeI2C (GPIO_PORTN_BASE、GPIO_PIN_4);//配置 SDA
GPIOPinTypeI2CSCL (GPIO_PORTN_BASE、GPIO_PIN_5);//配置 SCL

I2CMasterInitExpClk (I2C2_base、SysCtlClockGet ()、false);

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

    函数"SysCtlClockGet ()"不会与 TM4C129x 器件一起使用。 相反、您应该将由您的调用设置的变量 ui32SysClock 传递给 SysCtlClockFreqSet()。

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

    下面是一个将 I2C0用作主机并将其连接到用作从机的 I2C2的工作示例。 您必须连接 SDA 和 SCL 引脚并提供外部上拉电阻器。

    /cfs-file/__key/communityserver-discussions-components-files/908/5355.I2C0MtoI2C2S.zip

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

    因为我对 I2C 模块2使用不同的引脚、所以我需要从更改为

    GPIOPinConfigure (GPIO_PL1_I2C2SCL);
    GPIOPinConfigure (GPIO_PL0_I2C2SDA);
    GPIOPinTypeI2CSCL (GPIO_PORTL_BASE、GPIO_PIN_1);
    GPIOPinTypeI2C (GPIO_PORTL_BASE、GPIO_PIN_0);

    至:

    GPIOPinConfigure (GPIO_PN5_I2C2SCL);
    GPIOPinConfigure (GPIO_PN4_I2C2SDA);
    GPIOPinTypeI2CSCL (GPIO_PORTN_BASE、GPIO_PIN_5);//配置 SCL
    GPIOPinTypeI2C (GPIO_PORTN_BASE、GPIO_PIN_4); //配置 SDA

    现在、程序锁定在同一个位置

    我再次阅读 TM4C1242的手册(www.ti.com/.../tm4c1294ncpdt.pdf)、第1277页、表18-1、在交换这两个引脚时没有发现任何问题。

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

    您是否更改了:

    SysCtlPeripheralEnable (SYSCTL_Periph_GPIOL);
    
    /*至*/
    
    SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你让我明白了! 谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    即本文档,您是否会发送链接