OpenEdv-开源电子网

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

STM32 fatfs文件系统的文件内容怎么局部修改?

[复制链接]

30

主题

97

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-4-13
在线时间
68 小时
发表于 2018-10-17 23:35:50 | 显示全部楼层 |阅读模式
10金钱
STM32 fatfs文件系统的文件内容怎么局部修改?如文件里面的内容有:

......数据省略
01 02 03 04 05 06 07 08 09
0a 0b 0c 0d  0e 0f 01 04
11 22 33 44 55 66 77 88  99 00
......数据省略

文件有几百K或几千K的大小,文件里面的行数不同,我想用55替换上面红色标出的0f,请问各位达人可以用什么方法来实现?

最佳答案

查看完整内容[请看2#楼]

原子哥,读文件内容的某一行的某一列是可以读出来然后修改,但是想要把它再写写进去这个不好实现。我是这样想的:(1)先遍历一个文件有几行,同时统计出此文件中有多少个字节;(2)判断要修改的部分是文件中的第几行在文件中的几个字节;(3)然后对其进行覆盖写入新的单个字节数据。这种方法能不能实现,刚刚想到的,还没有去实现。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

30

主题

97

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-4-13
在线时间
68 小时
 楼主| 发表于 2018-10-17 23:35:51 | 显示全部楼层
本帖最后由 刺客_奋斗的菜鸟 于 2018-10-18 09:39 编辑
正点原子 发表于 2018-10-18 02:16
没什么好办法,读出来,找到,改写,然后再写入

原子哥,读文件内容的某一行的某一列是可以读出来然后修改,但是想要把它再写写进去这个不好实现。我是这样想的:(1)先遍历一个文件有几行,同时统计出此文件中有多少个字节;(2)判断要修改的部分是文件中的第几行在文件中的几个字节;(3)然后对其进行覆盖写入新的单个字节数据。这种方法能不能实现,刚刚想到的,还没有去实现。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-10-18 02:16:03 | 显示全部楼层
没什么好办法,读出来,找到,改写,然后再写入
回复

使用道具 举报

19

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2018-9-3
在线时间
50 小时
发表于 2018-10-18 09:24:50 | 显示全部楼层
正点原子 发表于 2018-10-18 02:16
没什么好办法,读出来,找到,改写,然后再写入

求助一个STM32F103VCT6与AT45DB081芯片通讯添加文件管理系统FATFS,SPI2的接口的示例
回复

使用道具 举报

30

主题

97

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-4-13
在线时间
68 小时
 楼主| 发表于 2018-10-18 09:42:32 | 显示全部楼层
凌凌漆 发表于 2018-10-18 09:24
求助一个STM32F103VCT6与AT45DB081芯片通讯添加文件管理系统FATFS,SPI2的接口的示例

正点原子的例程就挂载外设SPI Flash的,你可以去参考一下!
回复

使用道具 举报

19

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2018-9-3
在线时间
50 小时
发表于 2018-10-18 13:23:07 | 显示全部楼层
刺客_奋斗的菜鸟 发表于 2018-10-18 09:42
正点原子的例程就挂载外设SPI Flash的,你可以去参考一下!

SPIx_SendByte(0x00);
        SPIx_SendByte(First_Addr / 256);                                        //0=<First_Addr<=263
        SPIx_SendByte(First_Addr % 256);
        SPIx_SendByte(0x00);
回复

使用道具 举报

19

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2018-9-3
在线时间
50 小时
发表于 2018-10-18 13:36:39 | 显示全部楼层
刺客_奋斗的菜鸟 发表于 2018-10-18 09:42
正点原子的例程就挂载外设SPI Flash的,你可以去参考一下!

找到了,咨询一个问题啊,图片里的红圈圈是啥意思,为啥要这么发送起始地址啊
$PSXGH}7EOZ1(OK88UDN6~Q.png
回复

使用道具 举报

19

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2018-9-3
在线时间
50 小时
发表于 2018-10-18 13:38:52 | 显示全部楼层
刺客_奋斗的菜鸟 发表于 2018-10-18 09:42
正点原子的例程就挂载外设SPI Flash的,你可以去参考一下!

原子的示例我在看,我的081芯片有个这样的读取 是啥意思啊
回复

使用道具 举报

27

主题

132

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2018-7-20
在线时间
117 小时
发表于 2018-10-18 16:29:28 | 显示全部楼层
如果数据是没有规律的话就只能查找再修改了。有对应格式的话可以定位单个文件里面的地址修改的
回复

使用道具 举报

30

主题

97

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-4-13
在线时间
68 小时
 楼主| 发表于 2018-10-19 08:45:26 | 显示全部楼层
本帖最后由 刺客_奋斗的菜鸟 于 2018-10-19 08:53 编辑
fang百川 发表于 2018-10-18 16:29
如果数据是没有规律的话就只能查找再修改了。有对应格式的话可以定位单个文件里面的地址修改的

先说一下读:我写出来了,先判断文件内容有几行,然后根据想要读的内容在哪一行,根据指针偏移来读取这一行中想要读的内容。写的话跟读差不多,首先判断一个文件的内容有几行,同时把每一行的字节加起来,然后根据行和字节来找出想要修改的内容,文件指针偏置到那里,然后再进行修改。完毕。不用来来回回的读写。
回复

使用道具 举报

30

主题

97

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-4-13
在线时间
68 小时
 楼主| 发表于 2018-10-20 00:24:46 | 显示全部楼层
刺客_奋斗的菜鸟 发表于 2018-10-18 09:26
原子哥,读文件内容的某一行的某一列是可以读出来然后修改,但是想要把它再写写进去这个不好实现。我是这 ...

已经解决!
回复

使用道具 举报

30

主题

97

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2016-4-13
在线时间
68 小时
 楼主| 发表于 2018-10-20 00:25:32 | 显示全部楼层
凌凌漆 发表于 2018-10-18 13:36
找到了,咨询一个问题啊,图片里的红圈圈是啥意思,为啥要这么发送起始地址啊

这个SPI flash没有做过。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 10:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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