//按格式输出 
void format_data_transmit(float *xx, float *yy, float *zz, u16 *raw_data, float *filtered_data) 
{ 
       sprintf(SendBuff,"%s","#"); 
       sprintf((char*)X2data,"%.2f",*xx); 
       strcat(SendBuff,X2data); 
      strcat(SendBuff,"_"); 
      sprintf((char*)Y2data,"%.2f",*yy); 
      strcat(SendBuff,Y2data); 
      strcat(SendBuff,"_"); 
     sprintf((char*)Z2data,"%.2f",*zz); 
      strcat(SendBuff,Z2data); 
      strcat(SendBuff,"_"); 
      sprintf((char*)P2data,"%d",*raw_data); 
      strcat(SendBuff,P2data); 
      strcat(SendBuff,"_"); 
      sprintf((char*)BP2data,"%.2f",*filtered_data); 
      strcat(SendBuff,BP2data);    
 
     MYDMA_Config((u32)SendBuff,strlen(SendBuff)); 
      MYDMA_Enable();	 //开始一次DMA传输 
} 
	原始数据滤波后变成了浮点数,而且数据长度不确定,所以把浮点数转成了字符串输出, 
 for(k=0;k<170;k++) 
{ 
    format_data_transmit(&FX2data[k], &FY2data[k], &FZ2data[k], &  data[k], &FP3data[k]); 
} 
单步调试时可以正常输出,但运行时输出数据不对,也找不到原因,求高手指教,非常感谢! 
实际输出: 
 #7.#7#7.#7#7#7#7#8#8#8#8#8#8#8#8#8#8#7#7#7#7#7#7#7.#7#7#7#7#7#7#7#7#7#7#7#7#7.#7#7#7#7#8#8#8#8#8#8#8#8#8#8#8.#8#8#8#8#8#8#8#8#8#8#8#8#8.#8#8#8#8#8#8#8#8#8#8#8#8#8#8.#8#8#8#8#8#8#8#8#7#7#7#7#7#7#7#7.#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7.#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7.#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7.#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7#7.#7#7#7.98_1.13_246.66_2858_129.88
  |