初级会员

- 积分
- 102
- 金钱
- 102
- 注册时间
- 2015-5-31
- 在线时间
- 7 小时
|
5金钱
请教,我的FATFS代码有什么问题,就是读不出文件里面的内容,我在电脑上文件里面存的内容是“this is a test”。LCD显示内容如下,程序如下,请指教。
SD card OK!
file system OK!
open ok
read ok
ab乱码乱码
程序如下:
#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "mmc_sd.h"
//#include "FAT.h"
//#include "text.h"
//#include "fat.h"
//#include "fontupd.h"
//#include "sysfile.h"
#include "spi.h"
//#include "jpegbmp.h"
#include "ff.h"
#include "diskio.h"
#include "string.h"
//#include "cc936.c"
//#include "ccsbcs.c"
//Mini STM32开发板范例代码1
//跑马灯实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//u8 buf[512];//SD卡数据缓存区
/* file objects */
FATFS fs123; /* Work area (file system object) for logical drives */
FRESULT res;
UINT br, bw; /* File R/W count */
FIL fnew123;
BYTE buffer123[512]={0}; /* file copy buffer */
BYTE textFileBuffer[] = "Welcome to use Wildfire iso stm32 Development Board today is a good day";
int main(void)
{
BYTE i;
u8 abcd;
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //初始化与按键连接的硬件接口
//i= SD_Init();
LCD_Init(); //初始化液晶屏
// SPI_Flash_Init(); //SPI FLASH使能
i=disk_initialize(0);
if(i!=0)
LCD_ShowString(0,20,"SD card error!");//SD卡初始化失败
else
LCD_ShowString(0,20,"SD card OK!");//SD卡初始化OK
buffer123[0]='a';
buffer123[1]='b';
/* Register work area for each volume (Always succeeds regardless of disk status) */
res=f_mount(&fs123,"qiu",0);
if(res!=0)
LCD_ShowString(0,40,"file system error!");//文件系统加载失败
else
LCD_ShowString(0,40,"file system OK!");//文件系统加载OK
// f_mkdir("sub");
// if ( res == FR_OK )
// {
// LCD_ShowString(0,60,"make ok");
// }
// else {
// abcd=res;
// LCD_ShowNum(0,80,abcd,5,16); }
// f_mkdir("sub/sub1");
/* function disk_initialize() has been called in f_open */
/* Create new file on the drive 0 */
res = f_open(&fnew123, "0:/test.txt", FA_OPEN_EXISTING | FA_READ);//f_open(&fnew123, "0:/test.txt", FA_CREATE_ALWAYS | FA_WRITE );
abcd=res;
if ( res == FR_OK )
{
LCD_ShowString(0,60,"open ok");
res = f_read(&fnew123, buffer123, 12, &br);//f_write(&fnew123, textFileBuffer, sizeof(textFileBuffer), &bw);
if ( res == FR_OK )
{LCD_ShowString(0,80,"read ok");
for(i=0;i<8;i++)
{
LCD_ShowChar(i*6,100,buffer123);
}
}
else {
abcd=res;
LCD_ShowNum(0,80,abcd,5,16); }
f_close(&fnew123);
}
else LCD_ShowNum(0,60,abcd,5,16);//LCD_ShowString(0,60,"open error");
//res = f_open(&fnew123, "0:newfile1.txt", FA_OPEN_EXISTING | FA_READ);
//res = f_read(&fnew123, buffer, sizeof(buffer), &br);
//f_close(&fnew123);
while(1);
}
|
最佳答案
查看完整内容[请看2#楼]
回复【11楼】正点原子:
---------------------------------
我搞定了,我用MINI板的试验程序移植到小苗板上,成功了
|