硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4601|回复: 8
收起左侧

[有问必答] 写U盘的数据出现错误

[复制链接]

12

主题

24

回帖

12

积分

新手上路

积分
12
QQ
发表于 2016-5-11 15:20:27 | 显示全部楼层 |阅读模式
  1. f_mount(0, &fatfs);
  2.      
  3.     if(f_open(&file, "0:STM32.TXT",FA_OPEN_ALWAYS | FA_WRITE) == FR_OK)
  4.     {
  5.                 bytesWritten=file.fsize;
  6.                 f_lseek(&file,bytesWritten);
  7.       bytesToWrite = sizeof(adc);
  8. f_write (&file, adc, bytesToWrite, (void *)&bytesWritten);         
  9.       f_close(&file);
  10.       f_mount(0, NULL);
  11.          
  12.     }
复制代码
我现在是采集(u16)608个数据之后写入U盘,第一次写U盘数据没有发生错位,第二次才发生(原本的数据本来是0 3.3 0 3.3,但是写着写着就变成了3.3 0 3.3 0 )估计是写入的时候地址指针发生了错位,但是不知道怎么解决,请各位指教

数据的高位在高地址处

数据的高位在高地址处

回复

使用道具 举报

12

主题

24

回帖

12

积分

新手上路

积分
12
QQ
 楼主| 发表于 2016-5-11 15:21:33 | 显示全部楼层
数据高位在高地址处,第一个数据的看法是00 10,这代表是0V,第二个是0F FE,代表是3.3V,其他的数据一样
回复

使用道具 举报

12

主题

24

回帖

12

积分

新手上路

积分
12
QQ
 楼主| 发表于 2016-5-11 15:53:25 | 显示全部楼层
我将adc【608】数组分别赋予0~608,然后写入U盘,第一次写入时,如图所示,该行的最后一组数01 FE完了之后应该是01 FF,但是01 FF不见了,相反,在整个文档最开始的地方多了一组00 00
2.png 3.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2016-5-12 09:28:15 | 显示全部楼层

回 mengheli 的帖子

mengheli:我将adc【608】数组分别赋予0~608,然后写入U盘,第一次写入时,如图所示,该行的最后一组数01 FE完了之后应该是01 FF,但是01 FF不见了,相反,在整个文档最开始的地方多了一组00 00


 (2016-05-11 15:53) 
多测试几个文件试试,是不是每个文件都存在这种情况,还是偶尔有。
回复

使用道具 举报

12

主题

24

回帖

12

积分

新手上路

积分
12
QQ
 楼主| 发表于 2016-5-12 10:43:43 | 显示全部楼层

回 eric2013 的帖子

eric2013:多测试几个文件试试,是不是每个文件都存在这种情况,还是偶尔有。 (2016-05-12 09:28) 
关键是这个数组是U盘挂载进入用户操作函数之前赋值的,中间没有对其进行任何操作,到了U盘用户操作函数时写入就出错,但如果在写入前先转存进另一个相同大小的adc1,将adc1写入就没有问题。我之前是ad采样dma传输的数据写入,无论怎么样写入都出错,现在用这种方法测试,果然还是有问题
回复

使用道具 举报

12

主题

24

回帖

12

积分

新手上路

积分
12
QQ
 楼主| 发表于 2016-5-12 10:44:20 | 显示全部楼层

回 eric2013 的帖子

eric2013:多测试几个文件试试,是不是每个文件都存在这种情况,还是偶尔有。 (2016-05-12 09:28) 
每次都会出现相同的问题,开头处多个0000,然后缺一个01FF
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2016-5-12 11:56:14 | 显示全部楼层

回 mengheli 的帖子

mengheli:每次都会出现相同的问题,开头处多个0000,然后缺一个01FF (2016-05-12 10:44) 
实际打开这个文件,查看数据也是缺少最后一个吗。
回复

使用道具 举报

12

主题

24

回帖

12

积分

新手上路

积分
12
QQ
 楼主| 发表于 2016-5-13 15:24:01 | 显示全部楼层

回 eric2013 的帖子

eric2013:实际打开这个文件,查看数据也是缺少最后一个吗。 (2016-05-12 11:56) 
对,现在是608个数据,但是到最后只有605个值
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2016-5-14 00:16:44 | 显示全部楼层

回 mengheli 的帖子

mengheli:对,现在是608个数据,但是到最后只有605个值 (2016-05-13 15:24) 
那估计是程序设计有问题,或者换几个别的U盘试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 03:05 , Processed in 0.044662 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表