STM32
直播中

丁冬芹

8年用户 1382经验值
私信 关注
[问答]

sprintf函数进入HardFault_Handler()的原因?

float TempratureTest()
{
  uint8_t tmp_str[30]={0};
  /* 启动AD转换并使能AD中断 */
  HAL_ADC_Start_IT( hadcx);
  float ADC_ConvertedValueLocal[Nave]={0};// 用于保存转换计算后的电压值
  float SUM,begin,temp,tempc,templ,Ave,area;
  uint16_t ADC_ConvertedValue;
  int i,j;
  SUM=0;
  templ=0;
  area=0;
  /*初始温度测量*/
  for(i=0;i

回帖(2)

刘悌耀

2024-4-22 15:13:10
都是一个sprintf(),后面的没事,前面的就有问题,也就是说这并不是sprintf()本身的问题。
请把堆、栈开大,可以避免很多问题。
举报

王玉梅

2024-4-22 15:13:20
首先,sprintf 能不用就不用,改用 snprintf 可以避免很多 bug,特别是那种需要全公司人挑灯夜战加急修复的安全漏洞。

第二,检查一下 SCB 里面的几个错误状态寄存器,你会看到是哪里出问题的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分