OpenEdv-开源电子网

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

用FatFs写入的文件打开后看不懂,在电脑上创建的文件用FatFs读出来不对

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-4-28
在线时间
3 小时
发表于 2021-4-28 14:19:51 | 显示全部楼层 |阅读模式
本帖最后由 孔德恒 于 2021-4-28 14:21 编辑

最近学习FatFs,用CubeMX导入了FatFs文件系统用于SD卡读取文件,搞了两天终于可以实现挂载和文件的读写了,但是有出现新的问题这两天一直没找到解决办法,所以求助原子哥。
首先我用FatFs系统函数f_write写入txt文件然后再用f_read读取文件是可以的,数据不会出现什么问题,但是写入的文件在电脑查看,是乱码,如下面的图。

FatFs系统写入的文件在电脑中打开

FatFs系统写入的文件在电脑中打开

然后自己用电脑在SD卡中创建一个txt文件并写入一些数,

自己在电脑上创建的文件

自己在电脑上创建的文件

再用FatFs系统的函数读取,发送到串口调试助手的数是对应的ASCII码的十六进制,逗号也转换了。

串口调试助手读出电脑创建的文本

串口调试助手读出电脑创建的文本


而且最近一直没有找到正确读取的方法,我要读取的文件很大,数据很多,要是先写入再读取操作过于繁琐,而且修改困难。我想问用电脑给SD卡创建文件,如何能有效的读取出写入的数据。


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

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2021-5-6
在线时间
16 小时
发表于 2021-5-18 10:27:23 | 显示全部楼层
孔德恒 发表于 2021-5-14 13:55
用CubeMX创建带有FatFs的工成,然后直接调用FAT文件系统的函数就可以了

谢谢您,能请教你一下,怎么用串口调试助手把文件发往sd卡里啊
回复 支持 1 反对 0

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2021-4-28 23:42:49 | 显示全部楼层
不是utf-8编码格式吧
回复 支持 反对

使用道具 举报

5

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1844
金钱
1844
注册时间
2019-7-23
在线时间
286 小时
发表于 2021-4-29 09:15:01 | 显示全部楼层
感觉像是编码格式导致的乱码,在你的使用二进制工具打开你的文本,看看写入的和读取的是不是一致,如果是的话,那就是你编码问题了
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-4-28
在线时间
3 小时
 楼主| 发表于 2021-5-6 14:37:35 | 显示全部楼层
八度空间 发表于 2021-4-28 23:42
不是utf-8编码格式吧

单片机内创建的txt文件为ANSI编码格式,我自己在电脑建好拖入SD卡的txt文件ANSI和UTF-8编码格式都试了,从单片机读出来都是错的
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-4-28
在线时间
3 小时
 楼主| 发表于 2021-5-6 14:40:22 | 显示全部楼层
tw1157727586 发表于 2021-4-29 09:15
感觉像是编码格式导致的乱码,在你的使用二进制工具打开你的文本,看看写入的和读取的是不是一致,如果是的 ...

我用Beyond Compare工具看了,单片机写入的文件用其他的编码格式看也是乱码,DOS/OEM,UTF-8,UTF-16LE/BE都不行
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-4-28
在线时间
3 小时
 楼主| 发表于 2021-5-6 15:15:23 | 显示全部楼层
tw1157727586 发表于 2021-4-29 09:15
感觉像是编码格式导致的乱码,在你的使用二进制工具打开你的文本,看看写入的和读取的是不是一致,如果是的 ...

我用二进制查看工具Binary Viewer打开文件,发现2字节无符号整形小端是和我的单片机内的数是对的上的,但我不知道怎么做才能读到电脑拖入的文件
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2021-5-7 22:10:38 | 显示全部楼层
孔德恒 发表于 2021-5-6 14:37
单片机内创建的txt文件为ANSI编码格式,我自己在电脑建好拖入SD卡的txt文件ANSI和UTF-8编码格式都试了, ...

哦哦,还没遇到过
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

4

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2021-5-6
在线时间
16 小时
发表于 2021-5-12 16:23:11 | 显示全部楼层
您好,可以请教下您是怎么用fatfs文件系统往sd卡写入文件的吗
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2021-4-28
在线时间
3 小时
 楼主| 发表于 2021-5-14 13:55:24 | 显示全部楼层
678空城旧梦 发表于 2021-5-12 16:23
您好,可以请教下您是怎么用fatfs文件系统往sd卡写入文件的吗

用CubeMX创建带有FatFs的工成,然后直接调用FAT文件系统的函数就可以了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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