//关闭原来的文件
f_close(&text_file);
//触发新的页
read_cnt=0;
br=0;
//执行代码
res=f_readdir(&dir,&fno);
if(fno.fname[0] == 0 || res!=0)
{
/*3. 关闭目录*/
f_closedir(&dir);
/*1. 打开目录*/
res=f_opendir(&dir,path);
if(res!=FR_OK)return res;
res=f_readdir(&dir,&fno);
}
printf('文件名称: %s,文件大小: %ld 字节rn',fno.fname,fno.fsize);
LCD_color_1=BLACK;
NT35310_DisplayString(0,17,16,fno.fname);
if(abs_path)
{
free(abs_path);
abs_path=NULL;
}
//申请存放文件名称的长度
abs_path=malloc(strlen(path)+strlen(fno.fname)+1);
strcpy(abs_path,path);
strcat(abs_path,'/');
strcat(abs_path,fno.fname);
printf('abs_path=%sn',abs_path);
//填充颜色
NT35310_Fill(239/2+1,319-80+1,239-1,319-40-1,WHITE);
//显示字符串
NT35310_DisplayString(239/2+32,319-70,16,'下一本');
}
//判断范围
if((touch_info.x>=0 && touch_info.x<=239/2)&&
(touch_info.y>=319-40 && touch_info.y<=319))
{
LCD_color_2=BLUE;
//填充颜色
NT35310_Fill(0+1,319-40+1,239/2-1,319-1,BLUE);
//显示字符串
NT35310_DisplayString(32,319-30,16,'字体调整');
//等待触摸屏松开
while(TOUCH_PEN==0){}
if(size==16)size=24;
else size=16;
//执行代码
//填充颜色
NT35310_Fill(0+1,319-40+1,239/2-1,319-1,WHITE);
LCD_color_2=WHITE;
//显示字符串
NT35310_DisplayString(32,319-30,16,'字体调整');
}
//判断范围
if((touch_info.x>=239/2 && touch_info.x<=239)&&
(touch_info.y>=319-40 && touch_info.y<=319))
{
LCD_color_2=BLUE;
//填充颜色
NT35310_Fill(239/2+1,319-40+1,239-1,319-1,BLUE);
//显示字符串
NT35310_DisplayString(239/2+32,319-30,16,'颜色调整');
//等待触摸屏松开
while(TOUCH_PEN==0){}
//执行代码
//前景字体颜色切换
LCD_color_1=select_color[color_select_cnt++];
if(color_select_cnt>=12)
{
color_select_cnt=0;
}
//填充颜色
NT35310_Fill(239/2+1,319-40+1,239-1,319-1,WHITE);
LCD_color_2=WHITE;
//显示字符串
NT35310_DisplayString(239/2+32,319-30,16,'颜色调整');
}
}
}
}
}
u32 gbk32_32_addr=1024*0;
u8 font_buffer[4096];
//更新字库---从SD卡读取字库到W25Q64
void FontUpdate_to_W25Q64()
{
u32 w_cnt=0;
FILINFO fno;
FIL fp;
UINT br,res;
/*1. 打开字库*/
f_open(&fp,'0:/font/gbk16.DZK',FA_READ);
/*2. 循环读取字库更新到W25Q64*/
f_stat('0:/font/gbk16.DZK',&fno);
printf('文件的大小:%drn',fno.fsize);
while(1)
{
/*3. 读取字库文件*/
res=f_read(&fp,font_buffer,4096,&br);
/*4. 写入到W25Q64里*/
W25Q64_WriteData(gbk32_32_addr,br,font_buffer);
gbk32_32_addr+=br;
w_cnt+=br;
printf('font16:%.f%%rn',(w_cnt*1.0/fno.fsize)*100);
/*5. 判断文件是否结束*/
if(res!=FR_OK||br!=4096)break;
}
/*6. 关闭字库文件*/
f_close(&fp);
}
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png
5.2 sdcard.c SD卡驱动代码
#include 'sdcard.h'
static u8 SD_Type=0; //存放SD卡的类型
/*
函数功能:SD卡底层接口,通过SPI时序向SD卡读写一个字节
函数参数:data是要写入的数据
返 回 值:读到的数据
说明:时序是第二个上升沿采集数据
*/
u8 SDCardReadWriteOneByte(u8 DataTx)
上一篇:ESP8266烧写Gagent固件
下一篇:学习CAN通信协议(下)--实例讲解
推荐阅读最新更新时间:2024-11-13 23:15
设计资源 培训 开发板 精华推荐
- 使用 ON Semiconductor 的 CS-5120 的参考设计
- L298N四路电机驱动
- 为有刷直流电机提供恒流控制(PWM)的桥驱动电路 —— TB67H400ANG
- 使用 ROHM Semiconductor 的 BD46292 的参考设计
- LTM8042EV-1 1A 升压 LED 驱动器的典型应用电路,驱动 6 个白光 LED
- 提高精度和扩展电压范围可调线性稳压器
- 1810300404-董文成-作业合集
- 使用 Analog Devices 的 LTC3803IS6-3 的参考设计
- RE46C104压电喇叭驱动器和电压转换器的典型应用
- 较好的VC++集运动控制卡,CAD导图,手工绘图,的源代码和软件