OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4611|回复: 10

写入U盘发生错位错误

[复制链接]

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
发表于 2016-5-11 12:05:18 | 显示全部楼层 |阅读模式
20金钱
[mw_shl_code=applescript,true]    f_mount(0, &fatfs);
   
    if(f_open(&file, "0:STM32.TXT",FA_OPEN_ALWAYS | FA_WRITE) == FR_OK)
    {
                                bytesWritten=file.fsize;
                                f_lseek(&file,bytesWritten);
      bytesToWrite = sizeof(adc);
f_write (&file, adc, bytesToWrite, (void *)&bytesWritten);                        
      f_close(&file);
      f_mount(0, NULL);
                                GPIO_SetBits(GPIOB , GPIO_Pin_6);

        }[/mw_shl_code]
我现在是采集(u16)608个数据之后写入U盘,第一次写U盘数据没有发生错位,第二次才发生(原本的数据本来是0 3.3 0 3.3,但是写着写着就变成了3.3 0 3.3 0 )估计是写入的时候地址指针发生了错位,但是不知道怎么解决,请各位指教

1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-5-11 15:52:15 | 显示全部楼层
本帖最后由 mengheli 于 2016-5-11 15:58 编辑

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-11 19:42:17 | 显示全部楼层
是用winhex看的么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-5-11 20:16:28 | 显示全部楼层

对,是用winhex看的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-11 22:28:08 | 显示全部楼层
mengheli 发表于 2016-5-11 20:16
对,是用winhex看的

先用简单的代码测试下吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-5-12 09:05:12 | 显示全部楼层
正点原子 发表于 2016-5-11 22:28
先用简单的代码测试下吧

...现在 就给数组赋值,然后写到U盘里面去,就这么点东西
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-5-12 09:21:17 | 显示全部楼层
正点原子 发表于 2016-5-11 22:28
先用简单的代码测试下吧

如果我是在主函数赋值的数组,直接在U盘写入函数里面写入U盘就会出错,但是如果在U盘写入函数里,把该数组转移到另外一个相同大小的数组,再写入,就一点问题都没有,这是什么原因
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-13 21:36:31 | 显示全部楼层
mengheli 发表于 2016-5-12 09:21
如果我是在主函数赋值的数组,直接在U盘写入函数里面写入U盘就会出错,但是如果在U盘写入函数里,把该数 ...

我们的例程,也是可以存储数据到U盘的,没有说一定要新数组才行啊。
我们例程运行起来蛮正常的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-13 21:36:54 | 显示全部楼层
综合实验,保存txt文件的时候,只插U盘,就可以保存在U盘里面
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

48

主题

180

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2016-3-18
在线时间
88 小时
 楼主| 发表于 2016-5-13 21:40:00 | 显示全部楼层
正点原子 发表于 2016-5-13 21:36
我们的例程,也是可以存储数据到U盘的,没有说一定要新数组才行啊。
我们例程运行起来蛮正常的。

我这个整体框架都是按照你那个例程的思路写的,但就是不知道为什么出了这种问题
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-5-14 20:11:58 | 显示全部楼层
mengheli 发表于 2016-5-13 21:40
我这个整体框架都是按照你那个例程的思路写的,但就是不知道为什么出了这种问题

慢慢调试吧
先精简代码,屏蔽掉不用的,一步步试验。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 06:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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