//按格式输出
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
|