gpt4 book ai didi

c - 如何在 TM4C123GXL (Tiva) Launchpad 上使用 I2C

转载 作者:行者123 更新时间:2023-12-04 11:00:25 26 4
gpt4 key购买 nike

我正在尝试通过 I2C 总线将我的 Launchpad 设备连接到 Pololu MinIMU9v2 9DoF 传感器。我在 Linux 环境中工作,使用 arm-none-eabi-gcc 进行编译,并且我已经从 Texas Instruments 网站下载了 sw-ek-tm4c123gxl zip 文件。

在深入研究驱动程序下载时,我确定了一个文件夹 (examples/peripherals/i2c),其中包含 3 个演示(每个都在一个 C 文件中),用于使用 I2C 总线。一种将 Launchpad 作为从设备运行,另一种将其配置为环回,最后,还有一种使用所谓的“软 I2c”将 Launchpad 与基于 Atmel I2C 的存储设备连接起来。

我假设它的“软”部分意味着它是基于软件的,利用了中断等等。我正在寻找一个更简单的解决方案,最好是不中断。例如,环回示例就像一个魅力,但在修改它时,无论我尝试什么,我似乎都无法让它与 MinIMU9 通信。 MinIMU9 的文档非常清楚,但我认为我对如何使用此驱动程序软件缺乏了解。

最后,我不想重新发明轮子,但我似乎找不到其他人谈论 I2C 和 stellaris 或 tivac 发射台。我试图以这种方式实现这一目标是否偏离了目标?如果没有,是否有更简单的方法来解决这个问题?而且,如果没有,我在哪里可以了解更多有关我所缺少的东西的信息?

最佳答案

我终于明白了。一开始我没有注意到的一件事是德州仪器提供了一个 PDF 外设资源,其中讨论了他们的驱动程序库的用法。不幸的是,该文档远非全面,如果没有这些示例,可能仍需要有人埋头编写代码。

现在,外围示例需要一些工作才能开始。为了节省时间和精力,我尝试将 master_slave_loopback.c 复制到 examples/project/project.c 之上,根据文件中的注释修改它,然后我能够编译并运行示例,立即成功.

接下来,我尝试将新的 project.c 文件转换成允许我与 MiniIMU9v2 通信的文件。在大多数情况下,一切似乎都很简单。我注释掉了任何看起来与环回功能相关的内容,但是当我尝试执行该程序时,它会卡在以下行:

while(I2CMasterBusy(I2C0_BASE)) { }

开始解决这个问题时,我可能需要做些什么,我不知所措,因此我决定发布这个问题。幸运的是,这个问题比我想象的要简单得多,解决起来也出人意料。快速搜索显示此页面:http://e2e.ti.com/support/microcontrollers/tiva_arm/f/908/t/316580.aspx

我改变了:

GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_2 | GPIO_PIN_3);

收件人:

GPIOPinTypeI2C(GPIO_PORTB_BASE, GPIO_PIN_3);

这解决了我的问题。

关于c - 如何在 TM4C123GXL (Tiva) Launchpad 上使用 I2C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com