咚了个咚 发表于 2025-6-8 23:07

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

使用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;for(int i=0; i<1024; i++){          print_array = i;}printf("Hello World!\n");//Print out array valuesfor(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 printingfor(int i=0; i<2; i++){          printf("Hello World\n");          HAL_Delay(5);}HAL_Delay(100);   while(1);但是在SWV ITM数据控制台中得到的结果只包含大约900个数字,而不是1024个数字。数量也在波动。为什么会发生这种情况,是否有办法避免?
页: [1]
查看完整版本: printf在大量打印时会丢失一些数据