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.

[参考译文] UART 代码问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/567000/uart-code-problem

ERROR[Li005]:"UART_InString"没有定义  
ERROR[Li005]:"UART_InUDec"没有定义  
ERROR[Li005]:"UART_OutUDec"没有定义  
ERROR[Li005]:"UART_InUHex "没有定义  
ERROR[Li005]:"UART_OutUHex "没有定义  

这是我的错误、我的代码是

#include
#include "pll.h"
#include "UART.h"

//-------- OutCRLF ----------------------
//将一个 CR、LF 输出到 UART 以转至新线路
//输入:无
//输出:无
void OutCRLF (void){
UART_OutChar (CR);
UART_OutChar (LF);

int main (void){
字符 I;
char string[20];//全局以帮助调试
uint32_t n;

PLL_Init();//将系统时钟设置为120MHz
UART_Init();//初始化 UART
OutCRLF();
for (i='a';i<='z';i=i+1){//打印大写字母
UART_OutChar (I);

OutCRLF();
UART_OutChar ('');
for (i='a';i<='z';i=i+1){//打印小写字母
UART_OutChar (I);

OutCRLF();
UART_OutChar ('-');
UART_OutChar ('-');
UART_OutChar (">");
while (1){
UART_OutString ("InString:");
UART_InString (字符串、19);
UART_OutString (" OutString=");UART_OutString (string);OutCRLF ();

UART_OutString ("InUDec:");n=UART_InUDec ();
UART_OutString (" OutUDec=");UART_OutUDec (n);OutCRLF ();

UART_OutString ("InUHex:");n=UART_InUHex ();
UART_OutString (" OutUHex =");UART_OutUHex (n);OutCRLF ();


我的文件是  

最后一个问题是、如果我还添加了 startup.s 文件、我添加了启动文件、它会给我额外的300多个错误+保修

我应该做什么、请提供帮助。 情况紧急

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    误差
    编译配置:UART_1 -调试
    正在更新生成树...
    链接
    ERROR[Li005]:"PLL_Init"没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_Init"没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_OutChar"没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_OutString"没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_InString"没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_Indec "没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_OutUDec"没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_InUHex "没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    ERROR[Li005]:"UART_OutUHex 没有定义[引用自 C:\Users\sesa448607\Desktop\This is final\TM4C1294\UART\Debug\Obj\UARTTestMain.o]
    运行链接器时出错

    错误总数:9.
    警告总数:0
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、不一样

    函数的函数原型在哪里给出了错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我添加了文件 uart.h、它声明了这些 fucions。
    提前感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Harshal

    请注意、uart.h 也是 driverlib 文件。 包含被视为缺失的函数执行的操作的 C 文件的情况如何。 它们似乎不适用于链接器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个 UART.c 文件、它存储在 uart.h 文件所在的同一文件夹中。 我应该将其添加到链接器中。 如果是、则说明如何操作
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Harshal

    这是否与 TivaWare 中的 UART.c 相同?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我很困惑。 我尝试使用 UART 进行串行通信以在 taraterm 上发送字符。 现在、如果我不应该执行该代码、我应该执行什么操作、请建议执行什么操作。 我在一个 USB 端口上进行调试、使用串行至 TTL 板并使用 Trendnet 电缆连接第二个 USB 端口。 我现在还安装了 Trendnet 驱动程序、请提供帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Harshal、您好!

    在这种情况下、如果您希望向 TeraTerm 发送字符、为什么不像在 IDE 中一样导入用于 UART_ECHO 的 TivaWare 示例?

    我在这里(在无法访问您的代码的情况下)试图帮助您解决问题、这是我首先需要回答的问题、以便了解错误的原因。 如果您有自己的 UART.c 和.h、则会导致问题、因为 TivaWare 中存在相同的文件。 现在您是否使用 TivaWare 了;我不知道、因此您可能也想澄清一下。 如果未编译、则在工程中编译 UART.c、以便链接器链接函数。 如果对 TivaWare 上一个问题回答是、那么调用 UART.obj 文件时函数被覆盖的基本问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    相应 地与文档:TivaWareTm外设驱动程序库第2章-编程模型、  

    有2种编程方法: 直接寄存器访问 模型和软件驱动程序模型。

    每个模型都可以独立使用或组合使用、

    根据应用的需求或开发人员所需的编程环境。


    每个编程模型都有优缺点。  

    与 使用软件驱动程序模型相比、使用直接寄存器访问模型通常会导致更小、更高效的代码。

    但是、直接寄存器访问模型需要详细了解每个模型的操作
    寄存器和位字段、它们之间的交互以及正常运行所需的任何定序
    外设;软件驱动程序模型将开发人员与这些细节隔离、
    通常需要较少的时间来开发应用。

    此示例代码使用直接寄存器访问。  

    您是否从 Valvano 博士的著作中获得了该书、对吧? 我怀疑是因为我在这里有与从他的下载相同的代码  

    网页。

    在这里、他教授如何开发代码:  

    www.youtube.com/watch
    www.youtube.com/watch
    www.youtube.com/watch

    提示一下、请记住保留许可证标题。  


    /*本示例随本书一起提供
    "嵌入式系统:  与 Arm Cortex M 微控制器的实时连接"、
    ISBN:978-1463590154、Jonathan Valvano、版权所有(c) 2015

    版权所有2015、作者:Jonathan W. Valvano、valvano@mail.utexas.edu
    您可以使用、编辑、运行或分发此文件
    只要保留上述版权声明
    此软件"按原样"提供。 不作任何明示或暗示的保证
    或法定的、包括但不限于对的暗示担保
    适用于特定用途的适销性和适用性适用于此软件。
    VALVANO 在任何情况下都不对特殊、意外、
    或后果性损害、无论出于何种原因。
    有关我的课程、我的研究和我的书籍的更多信息、请参阅
    users.ece.utexas.edu/.../
    *

    基本而言、您只需导入项目并运行即可。 您知道如何导入项目吗? 如果没有、我可以为您提供帮助。  

    您知道如何导入项目吗? 如果没有、我可以为您提供帮助。  

    您可以在编译器 CCS 或 Keil 中运行此代码。 这两种方法都起作用。 我在这里有两个编译器、该示例在这两个方面都适用。  

      以下是我的测试输出:  

    我使用了白蚁。 它很简单、我喜欢它。 为了运行此 代码、 您需要配置"传输 测试 以附加 CR-LF"  

    否则、它永远不会移动到下一个输入。  

    祝您好运!