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.

[参考译文] 使用 stdio.h 库时出错。

Guru**** 2478765 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/690069/error-when-i-use-stdio-h-library

主题中讨论的其他器件:TM4C123GH6PM

我的进程未运行并跳转至 tm4c123gh6m_startup_ccs.c 文件的 FaultISR()函数。 在调试之前、我构建了并且没有错误。 因此,任何人都可以帮助我如何使用 sprintf()函数。

我的代码  

#include

char *__restrict Temp;

char *__restrict Vari;

char varx = 65;
字符 temp[3];

int main (空)

     //
     //配置系统的时钟。
     //系统时钟= 50MHz。
     //
     SysCtlClockSet (SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHz | SYSCTL_OSC_MAIN);

     // initlcd();

     Varari =变容;(&V)

      temp =&temp[0];

      sprintf (温度、"%02d"、Vari);

      while (1)
      {
         ;
       }
      返回0;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的问题与 studio.h 无关、与您的代码无关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从您的代码中、您尝试执行的操作对我来说并不清楚。 您的代码所做的是尝试将变量"varX"的地址作为十进制数打印到三字节字符串 temp 中。 它不适合。 但是跳转到 FaultISR 的原因是、您很可能已经溢出了堆栈。 "sprintf"函数需要大量堆栈空间。 默认工程仅分配256字节。 将堆栈大小增加到1024字节。 您可以通过更改项目设置并编辑链接命令文件来实现此目的。

    更改项目设置:

    编辑链接命令文件:

    __STACK_TOP =__STACK + 1024;
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、Bob Crosby。 最佳支持者。 祝你度过美好的一天! )