新手上路
- 积分
- 21
- 金钱
- 21
- 注册时间
- 2016-6-1
- 在线时间
- 7 小时
|
10金钱
我向txt中写字符串或者定义好的数组就可以,但AccValue[]数组装载传感器的输出值,就有问题,txt中要不是空白,要不是乱码
uint16_t AccValue[3];
f_mount(0,&fs);
res = f_open(&fnew, "0:accfile.txt", FA_CREATE_ALWAYS | FA_WRITE );
for (index = 0; index < BLOCK_SIZE; index++)
{
f_lseek(&fnew,fnew.fsize);
res = f_write(&fnew, AccValue, sizeof(AccValue), &bw);
f_sync(&fnew);
}
f_close(&fnew);
void Get_AccValue(void) //装载AccValue数组,只贴了一部分示意
{
if((GravityData.Xout&0xF000) ==0x0000)
{
temp = GravityData.Xout;
AccValue[0] = (uint32_t)temp *38;
}
else
{
GravityData.Xout -= 1;
GravityData.Xout = ~GravityData.Xout;
temp = GravityData.Xout;
AccValue[0] = (uint32_t)temp *38;
}
}
|
最佳答案
查看完整内容[请看2#楼]
各位分离,在转换成ASCII码就行了。//十三位二进制,最大值是8191,即4位十进制即可表示
uint8_t buf[7] = "0000\r\n";
//对数据进行分离,并转换成ASCII码的0~9字符
buf[0] = AccValue/1000%10 + '0';[/backcolor]
buf[1] = AccValue/100%10[/backcolor] [/backcolor]+ '0'[/backcolor];[/backcolor]
buf[2] = AccValue/10%10[/backcolor] [/backcolor]+ '0'[/backcolor];[/backcolor]
buf[3] = AccValue%10[/backcolor] [/ ...
|