基于ST32F103ZET6设计的小说阅读器详解

发布者:theta18最新更新时间:2024-06-18 来源: elecfans关键字:keil5 手机看文章 扫描二维码
随时随地手机看文章

                     //关闭原来的文件

                    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)

[1] [2] [3] [4]
关键字:keil5 引用地址:基于ST32F103ZET6设计的小说阅读器详解

上一篇:ESP8266烧写Gagent固件
下一篇:学习CAN通信协议(下)--实例讲解

推荐阅读最新更新时间:2024-11-13 23:15

解决keil5出现红叉号的问题(编译通过)
一般情况下的项目编译通过了,也可以仿真运行了,以至于这些红叉看起来多余,实在是别扭。如何解决掉这些红叉呢? 点击Edit- configuration, 在configuration对话框点击第五个选项卡Text Completion, Dynamic Syntax Checking 下面的Enable框去掉勾即可。
[单片机]
解决<font color='red'>keil5</font>出现红叉号的问题(编译通过)
keil5keil5 mdk有什么区别?
从Keil C51都Keil5 MDK,不知不觉已经用了Keil十几年。 虽然现在新增了一些开发环境,不过keil对于老工程师来说,应该是最亲切的了… Keil出过很多个版本,很多人最熟悉的是Keil C51和Keil5 MDK。 我们在做STM32程序开发编译的时候,基本上都是用keil5这个软件。 Keil5和Keil5 MDK(Microcontroller Development Kit)是 同一个软件的不同版本 。 Keil5是Keil公司推出的一款嵌入式开发工具,包括了MDK、DS-MDK和MDK-Lite三个版本,其中MDK是最全面的版本,支持最多的器件和功能。 Keil5提供了一个完整的开发环境,包括编辑器、编
[单片机]
Keil5建立stm32工程
一、准备工作: 1、首先在项目名称下建立一个文件夹,作为存放程序的地方; 2、在总文件夹下,依次建立User、Driver、List、Output三个文件夹,作为存放main函数、驱动函数、编译和输出文件的子文件夹; 二、建立工程 1、打开keil软件,选择建立工程并且保存后会自动弹出如下界面: 2、选择所需的芯片类型后,自动弹出如下界面: 3、选择CMSIS下的CORE项、Device项的Startup项、StdPeriph Driver下的RCC项、framework项(这里面含有stm32f10x_config.h misc.c misc.h),这些是必选的项目。剩下的一些外设驱动可以在程序编写的过程中添加。
[单片机]
<font color='red'>Keil5</font>建立stm32工程
keil5.24创建uCOSIII工程实现stm32实时操作系统(环境配置)
自从ARM keil升级到keil5系列版本后,Keil工具对操作系统,以及各种库文件的移植大大简化了 只需要动动手指,勾选一些库文件就能实现移植工作了。 1:假设你安装了keil 5.24(稍早点版本支持的os偏少),并且下载了你需要的支持包。 首先,安装KEIL5,简单 不作描述 其次,下载 PACK 简单不作描述(根据具体的STM32期间选型相应的DFP文件) 下载需要的middle 下载需要的ucosiii 假设你用MCU芯片是stm32f10x,就点击pack install 左边选择器件stm32f1系列,右边把你要用的OS,arm基本库,stm32f10x_DFP就是stm的库支持包,以及编译器自动在线更新好。
[单片机]
keil5.24创建uCOSIII工程实现stm32实时操作系统(环境配置)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved