重工电子论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 6162|回复: 5
打印 上一主题 下一主题

STM32 FAT32往SD卡中写TXT文本数据出现乱码

[复制链接]

12

主题

66

帖子

538

积分

高级会员

Rank: 4

积分
538
QQ
跳转到指定楼层
楼主
发表于 2015-10-20 20:57:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
往stm32上移植了fat32,在sd卡中创建txt文件、读写能够OK。定义一个22 bytes 的数组,定时把数组数据写入txt中,每次写到约1507行(写入1507次)时写入的数据开始出现乱码,请问可能是什么原因导致的?使用的fat32 簇大小为32KB,是否是因为一个文件大小超过簇大小而导致?有对fat32和SD卡熟悉的朋友帮忙分析一下,谢谢!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

12

主题

66

帖子

538

积分

高级会员

Rank: 4

积分
538
QQ
6#
 楼主| 发表于 2015-10-21 20:42:41 | 只看该作者
问题已经解决了,换了个SD卡就一切正常了。。。不过没搞懂问题在哪里,每次数据写入出现错误是从第二个簇开始,如果说是SD卡出现了坏簇,那么在之前有文件占用了坏簇之后,新创建的文件写入数据依然出现同样的问题,这是为什么???
回复 支持 反对

使用道具 举报

12

主题

66

帖子

538

积分

高级会员

Rank: 4

积分
538
QQ
5#
 楼主| 发表于 2015-10-21 11:08:25 | 只看该作者
本帖最后由 张金权-11级电子 于 2015-10-21 11:09 编辑
园丁 发表于 2015-10-21 10:23
检查数据类型和数据对齐问题


               if(flag_w==1)  
                {
                          flag_w=0;
                                AD_sam();

                                if(sec==1)
                                {
                                        f_open(&myfile, "monitora.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
                                        f_write(&myfile, buffer, strlen(buffer), &bw);
                                        f_close(&myfile);
                                }
                                else
                                {
                                        f_open(&myfile, "monitora.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE);
                                        f_lseek(&myfile,myfile.fsize);
                                        f_write(&myfile, buffer, strlen(buffer), &bw);
                                        f_close(&myfile);
                                }
                }

这是主循环里往TXT文本写入数据的代码,每次到一千五百多行写入会出现空白或这乱码,乱码一阵又好了,很奇怪的问题
回复 支持 反对

使用道具 举报

12

主题

66

帖子

538

积分

高级会员

Rank: 4

积分
538
QQ
地板
 楼主| 发表于 2015-10-21 11:06:18 | 只看该作者
园丁 发表于 2015-10-21 10:23
检查数据类型和数据对齐问题

char  buffer[]={"1.11;2.22;3.33;0000;\r\n"};//这是定义的数组缓冲区
回复 支持 反对

使用道具 举报

1

主题

16

帖子

140

积分

超级版主

Rank: 8Rank: 8

积分
140
板凳
发表于 2015-10-21 10:23:53 | 只看该作者
检查数据类型和数据对齐问题
回复 支持 反对

使用道具 举报

12

主题

66

帖子

538

积分

高级会员

Rank: 4

积分
538
QQ
沙发
 楼主| 发表于 2015-10-20 20:57:37 | 只看该作者
试个贴,顺便请教问题~~
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|cqutlab ( 渝ICP备15004556号

GMT+8, 2024-12-24 02:08 , Processed in 0.222982 second(s), 31 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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