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.

[参考译文] CCS/TM4C123GH6PM:缺少DriverLib和include文件,如何在CCS7中包括/安装DriverLib

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/591744/ccs-tm4c123gh6pm-missing-driverlib-and-include-files-how-to-include-install-driverlib-in-ccs7

部件号:TM4C123GH6PM

工具/软件:Code Composer Studio

你(们)好

我是TI MCU/CSS的新手(也是MCU的新手)。

我尝试为MCU构建一个旧项目,但由于include文件和DriverLib不可访问而出现错误,我尝试包含的文件包括:

我正在尝试修改所附项目的从属部分,我所做的更改不包括在内,这是GitHub的项目副本,我假定上载项目时项目正常。

#include <stdint.h>
#include <stdbool.h>

#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/HW_CAN.h"
#include "inc/hw_ints.h"
#include "driverlib/can.h"
#include "driverlib/interrupT.h"
#include "driverlib/sysctl.h"
#include "driverlib/gPI.h"
#include "driverlib/UART.h"
#include "driverlib/pin_map.h"

#include "utils/uartstdio.h"

似乎无法获得memmap.h和以下文件,我认为所有这些文件都可以通过下载一些“软件包”到CCS添加到工具中,这是正确的吗?

如何获得它?

请记住,我是新手,所以请与我一起解释"为傻子"。

感谢您的帮助,Petere2e.ti.com/.../tiva_2D00_can_2D00_bus_2D00_master.zip

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

    Peter,

    您需要的软件包称为TivaWare。  有几种方法可以获得它。  您可以从此处下载并安装:

    http://www.ti.com/tool/sw-tm4c

    或者,如果您使用的是较新版本的CCSv7,则可以转到“查看”菜单。  选择资源管理器。  在软件下浏览并选择如下所示的软件包。

    安装程序包后,您需要检查项目中的搜索路径设置。  如果您在项目资源管理器中右键单击项目并选择属性。  然后查看下面的截获,了解路径的设置位置。  

    在我的项目中,我从资源管理器导入了项目,此示例使用变量自动设置了包含路径,该变量由安装TivaWare的位置定义。  您可以使用该路径,也可以只指定安装路径。

    我还建议查看此研讨会。  它有助于学习CCS。

    downloads.ti.com/.../

    此致,

    John

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

    您好,John

    谢谢,我原本以为它是一个缺失的"软件包"或文件路径,我已经下载了该软件包,它也存在于资源管理器中,但文件路径中未包含该软件包。

    到目前为止,我将学习您链接到的研讨会。

    现在我要谈另一个问题,也许你可以解释为什么我会得到这些未定义的符号?

    这是我的main.c,我的项目中唯一的文件:

    /*
    * CAN总线LED控制器从固件
    *专为TI TIVA TM4C123GH6PM编写
    */

    #include <stdint.h>
    #include <stdbool.h>

    #include "inc/hw_memmap.h"
    #include "inc/hw_types.h"
    #include "inc/HW_CAN.h"
    #include "inc/hw_ints.h"
    #include "driverlib/can.h"
    #include "driverlib/interrupT.h"
    #include "driverlib/sysctl.h"
    #include "driverlib/gPI.h"
    #include "driverlib/UART.h"
    #include "driverlib/pin_map.h"

    #include "utils/uartstdio.h"
    //#include "drivers/rgB.h"

    volatile rxFlag =0;// msg已接收标志
    volatile errFlag =0;//错误标志
    //PJvolatile int LEN =0;//PJ CAN消息长度

    //可以中断处理程序
    void CANIntHandler (void){

    unsigned long status = CANIntStatus (CAN0_BASE,CAN_INT_STS_CAUSE);//读取中断状态

    IF (STATUS == CAN_INT_INTID_STATUS){//控制器状态中断
    状态= CANStatusGet (CAN0_BASE,CAN_STS_CONTROL);
    errFlag = 1;
    } else if (status ==1){// msg对象1.
    CANIntClear (CAN0_BASE,1);//清除中断
    rxFlag = 1;//设置Rx标志
    errFlag =0;//清除任何错误标志
    }否则{//永远不会发生
    UARTprintf ("意外CAN总线中断\n");
    }
    }

    int main (void){

    tCANMsgObject msg;// CAN msg对象
    rx消息数据的unsigned char msgData[8];// 8字节缓冲区

    //从晶体运行频率为50MHz
    SysCltlClockSet(sysctl_SYSDIV_4| sysctl_use_pll | sysctl_XTAL_16MHz | sysctl_OSC主);

    //设置调试UART
    SysCtlPeripheralEnable(sysctl_Periph_GPIOA);
    SysCtlPeripheralEnable(sysctl_Periph_UART0);
    GPIOPinConfigure(GPIO_PA0_U0RX);
    GPIOPinConfigure(GPIO_PA1_U0TX);
    GPIOPinTypeUART (GPIO _Porta_base,GPIO PIN_0 | GPIO PIN_1);
    UARTStdioConfig (11.52万,SysCltlClockGet ()));

    //设置CAN0
    SysCtlPeripheralEnable(sysctl_Periph_GPIOE);
    GPIOPinConfigure(GPIO_PE4_CAN0RX);
    GPIOPinConfigure(GPIO_PE5_CAN0TX);
    GPIOPinTypeCAN (GPIO _PORT_BASE,GPIO PIN_4 | GPIO PIN_5);
    SysCtlPeripheralEnable(sysctl_Periph_CAN0);
    CANInit (CAN0_BASE);
    CANBitRateSet (CAN0_BASE,SysClockSet(),50万);
    CANIntRegister (CAN0_BASE,CANIntHandler);//使用动态矢量表分配
    CANIntEnable (CAN0_BASE,CAN_INT_MASTER | CAN_INT_ERROR | CAN_INT_STATUS);
    IntEnable (INT_CAN0);
    CANEnable (CAN0_BASE);

    //设置LED驱动器
    //PJRGBInit (1);

    //使用ID和掩码0接收任何CAN ID的消息
    MSG.ui32MsgID = 0;
    MSG.ui32MsgIDMask = 0;
    MSG.ui32Flags = MSG_OBJ_RX_INT_ENABLE | MSG_OBJ_USE_ID_FILTER;
    MSG.ui32MsgLen =8;//最多允许8个字节

    //将消息加载到CAN外围消息对象1中,以便它可以在任何匹配的Rx消息上触发中断
    CANMessageSet (CAN0_BASE,1,&msg,MSG_OBJ_TYPE_RX);

    //PJ无符号int颜色[3];
    //PJ浮子强度;

    而(1){

    IF (rxFlag){// Rx中断已发生

    MSG.pui8MsgData = msgData;//设置指向Rx缓冲区的指针
    CANMessageGet (CAN0_BASE,1,&msg,0);//从CAN外围设备读取CAN消息对象1

    rxFlag =0;//清除Rx标志

    IF (msg.ui32Flags & MSG_OBJ_DATA_Lost){//检查丢失消息的消息标志
    UARTprintf ("检测到CAN消息丢失\n");
    }

    //从Rx缓冲区读取彩色数据(LED驱动器从0-255扩展到0-0xFFFF)
    //PJcolor[0]= msgData[0]* 0xFF;
    //PJcolor[1]= msgData[1]* 0xFF;
    //PJcolor[2]= msgData[2]* 0xFF;
    //PJIntensity = msgData[3]/250f;//从0-255缩放至浮点0-1

    //写入UART以进行调试
    //PJUARTprintf ("接收的颜色\tr:%d\TG:%d\tb:%d\ti:%d\n",msgData[0],msgData[1],msgData[2],msgData[3]);
    UARTprintf ("ID\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",msgData[0],msgData[1],msgData[2],msgData[3], msgData[4],msgData[5],msgData[6],msgData[7]);


    //设置颜色和强度
    //PJRGBSet (颜色,强度);
    }
    }

    返回0;
    }

    谢谢你,Peter

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

    Peter,

    这可能是由于类似的问题,但与库路径有关。

    以下是其中一个示例的屏幕截图。  实际上我不喜欢这个设置的方式。  基本的想法是在顶部框中列出库(.lib),然后在底部列出查找这些库的路径。  我怀疑在您的项目中,这些路径需要调整。

    此致,

    John

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

    您好,John

    谢谢,很遗憾我找不到lib文件,这是我必须下载的文件/软件包还是如何找到它?

    我没有您的文件,我搜索了"com_ti_tm4c_libraries",正如您在下面看到的,我已将DIR路径设置为TivaC程序包,但没有文件路径。

     “com_ti_tm4c_libraries”是正确的文件名还是我应该查找的另一个文件?

    我需要下载更多文件还是只需要找到正确的lib文件?

    此致

    彼得

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

    我尝试过:

    结果是:

    我不确定是否正确,但只剩下2个错误?

    此致,Peter

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

    奇怪,我提交前第一张图片不同,应该是这样的:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于我来说,driverlib和grlib的路径看起来不错。

    我搜索了TivaWare。 UARTprintf在uartstdio.c.中定义 我找到了另一个使用该函数的示例(GPIO_JAG),它在项目中具有uartstdio.c文件。

    John