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.
工具与软件:
我有一个 LaunchXL-F28069M Launchpad 和一个 DRV8301电机驱动器、并且我已在 motorware 中使用 proj10d 成功使电机旋转。 我还有一个 CC2640R2蓝牙板在接收游戏手柄数据、并希望通过 I2C 将此数据中继到 Launchpad F28069M。 我已经测试了 CC2640R2的 I2C 引脚、并验证数据是否按预期从该板输出。 我已经研究了 SimpleLink C2000 SDK 中的 I2C_EEPROM 示例、并尝试在项目10d 中实现相同的逻辑、但没有成功。 我设置了与 EEPROM 示例类似的所有适当寄存器、但当我查看寄存器时、它们没有我设置的值。 我不知道我在做什么错。 可能有东西正在被重置。 我不确定。 我正在尝试使用 f28069m 电路板的引脚32和33。 非常感谢为解决我的问题提供任何帮助。
在 proj10d 的 main 函数中,调用 hal_setparams()并依次调用 hal_setupGpios()。 在此函数中、我添加了代码、以模仿在 i2c_EEPROM 示例中设置的相同寄存器
我可以看到 proj10d 项目中有一个 i2c.h 文件。 因此、我创建了一个 i2c.c 文件并再次初始化了 i2c 寄存器以模拟 i2c_eeprom 示例、并且在运行电机的无限循环之前调用此函数
void I2C_init() { // // Initialize I2C // I2caRegs.I2CSAR= 0x0050; // 7-bit Slave address I2caRegs.I2CPSC.all = 6; // I2C clock between 7Mhz-12Mhz I2caRegs.I2CCLKL = 38; // Prescalers set for 100kHz bit rate I2caRegs.I2CCLKH = 38; // At a 10Mhz I2C clock I2caRegs.I2CIER.all = 0x0; //Disable Interrupts I2caRegs.I2CEMDR.all = 0X0020; // Take I2C out of reset return; }
但是、当我运行该程序时、不会设置寄存器。
有人可以帮您解决这个问题吗?