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.

[参考译文] SW-TM4C:我尝试创建了时钟电路的配置

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1200753/sw-tm4c-i-tried-to-create-the-configuration-of-the-clock-circuit

器件型号:SW-TM4C
主题中讨论的其他器件: TM4C123GH6PM、TM4C123

我尝试为时钟代码创建源代码。
你也能来这里吗?

示例代码

------------------
/*可能我们应该使用下面的头文件*/
#include
#include
#include
#include
#include

/*主函数*/
int main (void){
/*配置 PLL */
SysCtlClockFreqSet (SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL、120000000);
MAP_SysCtlClockFreqSet (SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL、120000000);

返回0;
}

------------------

顺便说一下、PLL 配置和 UART 配置是使用以下代码完成的。

你怎么看?

示例代码

------------------

/*可能我们应该使用下面的头文件*/
#include
#include
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "driverlib/debug.h"
#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"

/*系统时钟频率,单位为 Hz*/
uint32_t g_ui32SysClock;

/*主函数*/
int main (void){
//设置 PLL
G_ui32SysClock = SysCtlClockFreqSet (SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL、120000000);

//启用 UART 引脚
SysCtlPeripheralEnable (SYSCTL_Periph_UART0);

//配置 UART
UARTConfigSetExpClk (uART0_BASE、g_ui32SysClock、115200、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));

返回0;
}

------------------

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

    您好 Kanematu-San、

    SysCtlClockFreqSet (SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL、120000000);
    MAP_SysCtlClockFreqSet (SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL、120000000);

    对于这两种情况、VCO 的输入都缺失。 要以120MHz 运行、您应使用 SYSCTL_CFG_VCO_240。

    请参阅以下内容:

    MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
                            SYSCTL_OSC_MAIN |
                            SYSCTL_USE_PLL |
                            SYSCTL_CFG_VCO_240), 120000000);

    //配置 UART
    UARTConfigSetExpClk (uART0_BASE、g_ui32SysClock、115200、(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE);[/报价]

    此处、时钟配置适用于 UART 外设。

    此致、

    拉尔夫·雅各比

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

    顺便说一下、关于头文件、我尚未在创建我自己的源码时弄清将 SW-TM4C 文件的头文件中包含的含义、因此请告诉我。

    示例):#include "driverlib/uart.h"
    例如、对于上述内容、我认为这是对 SW-TM4C 中 driverlib 中 uart.h 的识别。
    这就是我创建示例代码的原因、但这是否意味着如果头文件与该代码置于相同的层次结构中、则不需要 uart.h?

    (P.S.)
    我实际上尝试了使用 CCS 编译我的代码。

    项目具有以下层次结构、但显示了以下错误消息。


    "..\SYSCTL.h"、第600行:错误#20:标识符"uint32_t"未定义
    "..\SYSCTL.h",第601行:错误#20:标识符"bool"未定义

    我该怎么办?
    我真的不知道如何处理头文件中的错误。

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

    您好 Kanematu-San、

    您无需像显示了直接添加这些文件的位置一样、将这些文件包含在 CCS 工程中。 应使用 TivaWare driverlib 库文件并仅使用.c 文件中的#include 定义来链接这些文件。

    请遵循我们的入门指南: https://www.ti.com/lit/ug/spmu373a/spmu373a.pdf 的第5部分

    其中将指导您如何正确地将 driverlib 添加到项目中。 此时、您可以删除 TivaWare 库文件的关联。

    需要从 TivaWare SDK 将文件添加到工程中的唯一时间是没有与文件关联的库。 uartstdio 等 utils 也是这种情况。 同一入门指南的第3.1节详细介绍了如何执行此操作。

    此致、

    拉尔夫·雅各比

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

    您好、感谢您的答复。

    您说的是、不同类型的头文件不必位于同一目录中?
    如果您想了解更多信息、请查看您提供的材料的第3章和第5章!

    顺便说一下、我应该如何处理我提出的以下问题?

    "..\SYSCTL.h"、第600行:错误#20:标识符"uint32_t"未定义
    "..\SYSCTL.h",第601行:错误#20:标识符"bool"未定义

    我该怎么办?
    我真的不知道如何处理头文件中的错误。

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

    出现错误是因为您将文件错误地添加到了项目中。 请将其删除、然后按照《入门指南》的指导进行操作。

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

    感谢您的教学。

    我明白了。 我将快速看一下这些材料。
    这是否意味着它也写在第3章和第5章中?

    (P.S.)

    我按照第3章中的步骤操作。

    但是、编译时出现以下错误:
    为什么会发生这种情况?
    请告诉我。

    "c:/ti/ccs1220/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/bin/armcl -mv7M4 --code_state=16 --float_support=FPv4SPD16 -me -O2 - define=ccs"-- define=part_TM4C123GH6PM /ti/ccs1220/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/lib --define=target_is_TM4C123_rb1 -g /ti/ccs1220/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/include /ti/TivaWare_C_Series-2.2.0.295/driverlib/ccs/Debug/driverlib.lib /ti/TivaWare_C_Series-2.2.0.295/usblib/ccs/Debug/usblib.lib

    错误#10056:符号"ResetISR"已重新定义:首先在"./startup_ccs.obj"中定义;在"./tm4c123gh6m_startup_ccs.obj"中重新定义
    错误#10056:符号"g_pfnVectors"重新定义:首先在"./startup_ccs.obj"中定义;然后在"./tm4c123gh6p_startup_ccs.obj"中重新定义
    错误#10010:链接过程中遇到错误;未生成"Single_ended.out"

    >>编译失败
    Makefile:140:目标"single_ended.out"的食谱失败
    gmake[1]:***[Single_ended.Out]错误1
    Makefile:136:目标"全部"的食谱失败
    gmake:***[全部]错误2.

    ****构建完成****

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

    您好 Kanematu-San、

    听起来您的项目中可能有多个启动文件。 我无法确定更多的问题、但这不是与 driverlib 相关的问题、也不是与第3节或第5节中涵盖的材料有关的任何问题。

    您可能希望从新工程开始并按照这些部分进行操作、而不是试图利用编译错误来挽救现有工程-如果没有 CCS 专业知识、解决编译错误会很棘手、并且可以更快地从零开始重新启动、然后重新添加一次特定于工程的文件 您已正确配置库。

    此致、

    拉尔夫·雅各比

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

    好的、谢谢!