资深版主
 
- 积分
- 10565
- 金钱
- 10565
- 注册时间
- 2017-2-18
- 在线时间
- 1913 小时
|
本帖最后由 peng1554 于 2019-10-17 18:55 编辑
今天遇到客户用探索者F407的FATFS视频教程中的FATFS测试工程出现问题:TXT文件写入数据成功,液晶端显示的从TXT文件读取到的数据跟写入的数据一致,但是当TXT文件在电脑端打开的时候有乱码现象,
这种乱码现象是因为没有在写入数据的时候有部分空间没有写入ASCII码。
所以修改了下原程序,将原先写入50字节的数据改为写入14个字节(“alientek test”占用14个字节)。
[mw_shl_code=c,true] f_write (&fil, "alientek test", 14, &bww);[/mw_shl_code]
之前也有客户问到其他板子向SD卡写入数据的情况所以移植到了各个开发板上。
程序说明请参考探索者F407的FATFS视频教程及其配套的文档说明:
1.探索者F407FATFS视频教程:https://pan.baidu.com/s/1eCOaa3LqmpEaktEc554sVw
2.对应的文档说明:https://pan.baidu.com/s/17lmI3jwdpuC0RrNbM83e4A
现象说明: 测试程序开机的时候先初始化SD卡,初始化成功之后,注册两个工作区(一个给SD卡用,一个给SPI FLASH
用),然后获取SD卡的容量和剩余空间,并显示在LCD模块上。液晶这边显示“alientek test”字符,
同时SD卡根目录也保存了message.txt文件
整个程序重要的是这几行代码:
[mw_shl_code=c,true]FIL fil;
FRESULT res;
UINT bww;
char buf[100];
res=f_open (&fil,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);
f_write (&fil, "alientek test", 14, &bww);
f_close(&fil);
res=f_open (&fil,"0:/message.txt", FA_READ);
f_read (&fil, buf,100,&bww);
f_close(&fil);
LCD_ShowString(30,210,230,24,24,(u8 *)buf);
[/mw_shl_code]
这段代码的讲解见前边附上的视频
测试结果
结尾附上使用USMART组件写入数据的方法,见附件中的视频
|
|