- /**************************************************************************************
- * FunctionName : AppFileRead()
- * Description : 读取文件
- * EntryParameter : fileName - 需要读取的文件名或路径
- * ReturnValue : 成功返回-0;失败返回-1
- **************************************************************************************/
- uint8_t AppFileRead(const TCHAR *fileName)
- {
- FATFS fs; /*Work area (file system object) for logical drive*/
- FIL file; /*file objects*/
- UINT br,ii=0; /*File R/W count*/
- /*Register a work area for logical drive 0*/
- f_mount(0, &fs);
- /*Create file*/
- if(f_open(&file, fileName, FA_READ))
- {
- return 0;
- }
- else
- {
- //OLED屏幕写屏方式
- cmd(0x05);
- data(0x02);
- cmd(0x0A); //指定对OLED全屏幕写屏
- data(0);
- data(0x00); //
- data(7);
- data(0x0f); //15
- data(2);
- data(0x00); //64 //D-IC Change : 128128 IC -> 128160 IC
- data(9);
- data(0x0F); //127
- cmd(0x0C);
- do
- {
- AppClearBuffer(0x00); // 缓冲清零
- if(f_read(&file, Buffer, BUFFER_SIZE, &br))
- {
- return 0;
- }
- else
- {
- //UARTSendString((const CHAR *)Buffer); // UART发送读取文件,我们不需要,注释掉
- int i;
- for(i=0;i<br;i=i+3)
- {
- if (ii>=54) //丢掉我们不需要的BMP文件头,一共54个字节
- {
- data(Buffer[i+2]>>2); //写到OLED,红色
- data(Buffer[i+1]>>2); //写到OLED,绿色
- data(Buffer>>2); //写到OLED,蓝色
- }
- ii+=3;
- }
- }
- } while (br); // 判断是否读完(br == 0,表示读取完成)
|