重工电子论坛

标题: STM32 FAT32往SD卡中写TXT文本数据出现乱码 [打印本页]

作者: 张金权-11级电子    时间: 2015-10-20 20:57
标题: STM32 FAT32往SD卡中写TXT文本数据出现乱码
往stm32上移植了fat32,在sd卡中创建txt文件、读写能够OK。定义一个22 bytes 的数组,定时把数组数据写入txt中,每次写到约1507行(写入1507次)时写入的数据开始出现乱码,请问可能是什么原因导致的?使用的fat32 簇大小为32KB,是否是因为一个文件大小超过簇大小而导致?有对fat32和SD卡熟悉的朋友帮忙分析一下,谢谢!!
作者: 张金权-11级电子    时间: 2015-10-20 20:57
试个贴,顺便请教问题~~
作者: 园丁    时间: 2015-10-21 10:23
检查数据类型和数据对齐问题
作者: 张金权-11级电子    时间: 2015-10-21 11:06
园丁 发表于 2015-10-21 10:23
检查数据类型和数据对齐问题

char  buffer[]={"1.11;2.22;3.33;0000;\r\n"};//这是定义的数组缓冲区
作者: 张金权-11级电子    时间: 2015-10-21 11:08
本帖最后由 张金权-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
问题已经解决了,换了个SD卡就一切正常了。。。不过没搞懂问题在哪里,每次数据写入出现错误是从第二个簇开始,如果说是SD卡出现了坏簇,那么在之前有文件占用了坏簇之后,新创建的文件写入数据依然出现同样的问题,这是为什么???




欢迎光临 重工电子论坛 (http://cqutlab.cn/) Powered by Discuz! X3.1