张金权-11级电子 发表于 2015-10-20 20:57:08

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

往stm32上移植了fat32,在sd卡中创建txt文件、读写能够OK。定义一个22 bytes 的数组,定时把数组数据写入txt中,每次写到约1507行(写入1507次)时写入的数据开始出现乱码,请问可能是什么原因导致的?使用的fat32 簇大小为32KB,是否是因为一个文件大小超过簇大小而导致?有对fat32和SD卡熟悉的朋友帮忙分析一下,谢谢!!

张金权-11级电子 发表于 2015-10-20 20:57:37

试个贴,顺便请教问题~~

园丁 发表于 2015-10-21 10:23:53

检查数据类型和数据对齐问题

张金权-11级电子 发表于 2015-10-21 11:06:18

园丁 发表于 2015-10-21 10:23
检查数据类型和数据对齐问题

charbuffer[]={"1.11;2.22;3.33;0000;\r\n"};//这是定义的数组缓冲区

张金权-11级电子 发表于 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文本写入数据的代码,每次到一千五百多行写入会出现空白或这乱码,乱码一阵又好了,很奇怪的问题

张金权-11级电子 发表于 2015-10-21 20:42:41

问题已经解决了,换了个SD卡就一切正常了。。。不过没搞懂问题在哪里,每次数据写入出现错误是从第二个簇开始,如果说是SD卡出现了坏簇,那么在之前有文件占用了坏簇之后,新创建的文件写入数据依然出现同样的问题,这是为什么???
页: [1]
查看完整版本: STM32 FAT32往SD卡中写TXT文本数据出现乱码