各位前辈好,刚开始接触单片机,正在使用STM32F103C8T6的开发板做一个数据采集系统,使用SD卡存储数据。本人跟着野火的《37-SD卡—FatFs移植与读写测试(SPI模式)》视频教程学习SD卡初始化和FATFS移植。现在遇到了一些问题,我先把我的硬件条件说明一下,
首先教程里用的是F103RCMINI板,我用的是STM32F103C8T6;其次教程用的是SPI1,我用的是SPI2。
问题1:当添加cc936.c时,编译报错..\..\Output\Template.axf: Error: L6406E: No space in execution regions with .ANY selector matching cc936.o(.constdata).(一共23个),网上查找原因应该是超出C8T6的容量,我采取的办法就是不用936 - Simplified Chinese (DBCS),不添加cc936.c文件,因为教程里没添加的时候SD卡也能正常写入"欢迎使用野火STM32 开发板 今天是个好日子,新建文件系统测试文件“,此时这个报错解决。
问题2:删除cc936后,我把ffconf.h文件里的#define _USE_LFN 1改为#define _USE_LFN 0。然后SPI1换成SPI2,GPIO配置如下图,之后串口助手显示文件读写测试成功,但打开SD卡后发现文件内容是乱码,如图所示
问题3:我尝试按照历程源码使用f_write_co替代上面f_write,如下图,但是改完报错没定义,然后我还不会加定义。但我觉得"欢迎使用野火STM32 开发板 今天是个好日子,新建文件系统测试文件“这段文字不至于超过512字节吧,毕竟视频里都成功了。
所以我没找到导致乱码的原因,所以求助各位前辈,还请有想法有建议的各位多多回复意见,感激不尽!!