打印
[其他ST产品]

printf在大量打印时会丢失一些数据

[复制链接]
39|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
咚了个咚|  楼主 | 2025-6-8 23:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用nucleo-H473 ZI 2与CubeIDE。当我打印一个1024长的int数组时,SWV ITM数据控制台不会输出所有1024个值。总会丢失一些数据。
以下是程序
int _write(int file, char *ptr, int len){  /* Implement your write code here, this is used by puts and printf for example */  int i=0;  for(i=0 ; i<len ; i++)    ITM_SendChar((*ptr++));  return len;}
然后我打印出数组中的所有值:
  int print_array[1024];  for(int i=0; i<1024; i++){          print_array = i;  }  printf("Hello World!\n");  //Print out array values  for(int i=0; i<1024; i++){          printf("%d, \n", i);          HAL_Delay(5);  }  HAL_Delay(1000);  //Print some more to make sure all data is finished printing  for(int i=0; i<2; i++){          printf("Hello World\n");          HAL_Delay(5);  }  HAL_Delay(100);   while(1);
但是在SWV ITM数据控制台中得到的结果只包含大约900个数字,而不是1024个数字。数量也在波动。
为什么会发生这种情况,是否有办法避免?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

30

帖子

0

粉丝