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.

[参考译文] 如何使用 I2C 启动(合适的库在哪里?)

Guru**** 1832870 points
Other Parts Discussed in Thread: EK-TM4C123GXL, EK-TM4C1294XL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/580611/how-to-startup-with-i2c-where-is-appropriate-library

Thread 中讨论的其他器件:EK-TM4C123GXLEK-TM4C1294XL

大家好、

我是 TI 环境的初学者。  

我使用连接 Tiva C 系列的 LaunchPad Workshop 进行电机控制。 我编写一个程序、需要有关如何通过 LuaunchPad 板初始化电机驱动器的信息。 我在网站上找到了 i2c.c 和 i2c.h、因此我首先尝试使用这些文件。 我阅读了文档"TivaWare 外设驱动程序库"、其中显示了使用 SysCtlPeripheralEnable()、 SysCtlPeripheralReady()等的示例程序(16.3编程示例、第347页)。

我找不到库中存储了函数的位置(我使用文件搜索查找了、但未找到)。

那么、我想知道、在 Tiva C 系列连接 LaunchPad 技术讲座中、需要为电机应用(或 I2C 通信)安装什么库? 请向我展示最新的链接。

此致、

S.Takano

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Takano、
    我已将您的问题移至相应的论坛。
    -弗朗西斯·胡德
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您已下载 CCSv7和最新的 TivaWare 版本2.1.4.178、则可能需要修改工程的包含路径和链接器库路径。 尤其是导入了使用早期版本的 CCS 或 TivaWare 构建的工程时。

    首先、通过右键点击工程名称并选择"Show Build Settings"来设置包含路径。 然后添加希望编译器搜索任何#include 文件的目录。 在以下示例中、是编译器标准头文件、TivaWare 库头文件以及 EK-TM4C123GXL 板特定头文件的路径。

    接下来、添加链接器要搜索的库。 在此示例中、您会看到标准库"libc.a"、该库包含在使用宏指定的搜索路径中、用于标识使用"${CG_TOOL_ROOT}/lib"的编译器版本。 TivaWare 库的位置被明确输入为:"C:\ti\TivaWare_C_Series-2.1.4.178\driverlib\ccs\Debug\driverlib.lib"

    从最新版本的 TivaWare 导入的示例将已为您设置这些路径。 可以导入示例"C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c123gxl\project0"以启动 使用 TivaWare 和 EK-TM4C123GXL Launch Pad 的新工程。 导入后、右键单击项目名称以重命名它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、
    非常感谢您的回复。 我安装了"sw-TM4C-2.1.4.178.exe"并设置了包含路径(与 Bob 的设置相同)、但仍然遇到错误、导致代码中缺少包含路径。

    例如、我想使用"SysCtlPeripheralEnable"函数、但不在其中。 如何解决此问题(在站点中的什么位置)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    还有一个问题、函数 I2CMasterIntClearEx (uint32_t ui32Base、uint32_t ui32IntFlags)例如使用 ui32Base、通常基址是不带偏移的基址、但我认为这个 ui32Base 应该包含偏移值、这个值是否被认为正确(因为目标从 I2C 器件必须知道寄存器地址)?

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

    错误消息如下所示;
    "./i2c_comm.c"、第30行:警告#225-D:函数"SysCtlPeripheralEnable"隐式声明
    SysCtlPeripheralEnable()不在我的 PC 中,此站点中的库在哪里?

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

    Include Option->Add dir #include search path;
    "${CG_TOOL_ROOT}/包含"
    "C:\ti\TivaWare_C_Series-2.1.4.178"
    "C:\ti\TivaWare_C_Series-2.1.4.178\driverlib"
    "C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c1294xl"

    ARM linker->File Search Path
    包含命令文件的库文件作为输入
    "libc.a"
    "C:\ti\TivaWare_C_Series-2.1.4.178\driverlib\ccs\Debug\driverlib.lib"

    添加 库搜索路径
    "${CG_TOOL_ROOT}/包含"
    "${CG_TOOL_ROOT}/lib"

    然后我会得到以下错误;
    "C:/ti/TivaWare_C_Series-2.1.4.178/driverlib/i2c.h "、第291行:错误#20:标识符"uint8_t"未定义
    "C:/ti/TivaWare_C_Series-2.1.4.178/driverlib/i2c.h、第305行:错误#20:标识符"bool 未定义

    我为什么得到它、如何解决它?

    谢谢、此致、
    Takano
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您正在编译的文件似乎缺少标准"#include"文件。 以下是示例 project0中使用的 include:
    #include
    #include
    #include "inc/hw_types.h"
    #include "inc/hw_memmap.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/gpio.h"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、现在开始工作了、谢谢。

    I 设置如下:

    1) Build->ARM Compiler->Include Options

    a)将 dir 添加到#include 搜索路径

    "${CG_TOOL_ROOT}/包含"

    "C:\ti\TivaWare_C_Series-2.1.4.178"

    "C:\ti\TivaWare_C_Series-2.1.4.178\driverlib"

    "C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c1294xl"

    最后一行可能是选项、可能是不必要的。

    b)指定包含前文件

    "C:\ti\ccsv7\tools\compiler\ti-cgt-arm_16.9.0.LTS \include\stdint.h"

    "C:\ti\ccsv7\tools\compiler\ti-cgt-arm_16.9.0.LTS \include\stdbool.h"

    2) Build->ARM Linker->File Search Path

    a)包含库文件或命令文件作为输入

    "libc.a"

    C:\ti\TivaWare_C_Series-2.1.4.178\driverlib\ccs\Debug\driverlib.lib"

    b)添加

    库搜索路径

    "${CG_TOOL_ROOT}/lib"

    "${CG_TOOL_ROOT}/包含"

    某些环境变量在安装时未设置、因此我使用绝对路径来指定。

    现在、我要确认环境变量"CG_TOOL_ROOT"、而警告消息不会解决 CG_TOOL_ROOT、因此我希望该变量已设置、但它未在我的计算机的环境变量中设置、它是否正常? 应该在 CG_TOOL_ROOT 变量上放置什么路径?

    此致、

    高野雪之

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

    对于在编译尝试期间发现未定义的几乎任何内容、良好的解决方案包括:

    -打开一个您知道其名称未定义的演示项目(通常是与您正在执行的操作相关的任何演示,如计时器、PWM 等)。 -当然、几乎所有示例中都将出现类似本例的变量类型定义。
    -打开演示的.c 或.h 文件并找到此类名称。
    -按住 CTRL 键并左键单击名称、CCS 将打开声明该内容的文件。 对于 uint8_t、您会看到它是"stdint.h"。

    其他选项:

    -安装 Agent ransack 等文件查询器、并使用它查找文本、将搜索范围限制在系统的 TivaWare 文件夹中、以使生活更轻松。
    -查看结果。 您可能会在项目/演示文件夹中找到多个文件、最终会在库中找到一个或两个文件。 根据您的判断找出正确的一个。

    关于 CG_ROOT 案例、我刚刚在您的另一个主题上写了类似标题...

    谢谢

    布鲁诺