久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6994|回復: 2
收起左側

STM32F4更新W25Q16字庫源程序

[復制鏈接]
ID:319311 發(fā)表于 2018-4-30 12:41 | 顯示全部樓層 |閱讀模式
一開始我下載了讀取SD卡的程序,但液晶顯示屏幕上沒反應,于是我就下載了這個關于更新字庫的程序,就有反應了。
本實驗將實現(xiàn)如下功能:開機的時候先檢測W25Q16中是否已經(jīng)存在字庫,如果存在,則按次序顯示漢字(三種字體都顯示)。如果沒有,則檢測SD卡和文件系統(tǒng),并查找SYSTEM文件夾下的FONT文件夾,在該文件夾內(nèi)查找UNIGBK.BIN、GBK12.FON、GBK16.FON (這幾個文件的由來,我們前面已經(jīng)介紹了)。在檢測到這些文件之后,就開始更新字庫,更新完畢才開始顯示漢字。通過按按鍵KEY0,可以強制更新字庫。同樣我們也是用DS0來指示程序正在運行。
0.png
需要拷貝到SD卡根目錄文件
1,在系統(tǒng)(或字庫)更新的時候,必須用到SYSTEM文件夾,請將該文件夾下的SYSTEM文件夾拷貝到SD卡根目錄。
2,測試用文件--該文件夾是用來測試用的,里面包含一些文本/圖片/音樂/視頻等文件,這個文件不一定要拷貝。
3,默認我們已經(jīng)將這兩個文件夾拷貝到了FLASH磁盤(磁盤名:ALIENTEK,即W25Q128)里面。

注意:
1,本例程支持12*12/16*16 大小的漢字顯示。
2,如果想更新字庫,必須自備SD卡一個。

單片機源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "key.h"  
  7. #include "sram.h"   
  8. #include "malloc.h"
  9. #include "usmart.h"  
  10. #include "sdio_sdcard.h"   
  11. #include "malloc.h"
  12. #include "w25qxx.h"   
  13. #include "ff.h"  
  14. #include "exfuns.h"   
  15. #include "fontupd.h"
  16. #include "text.h"       

  17. //漢字顯示 實驗 -庫函數(shù)版本
  18. //STM32F4工程模板-庫函數(shù)版本


  19. int main(void)
  20. {        
  21.         u32 fontcnt;                  
  22.         u8 i,j;
  23.         u8 fontx[2];//gbk碼
  24.         u8 key,t;
  25.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統(tǒng)中斷優(yōu)先級分組2
  26.         delay_init(168);  //初始化延時函數(shù)
  27.         uart_init(115200);                //初始化串口波特率為115200
  28.         LED_Init();                                        //初始化LED  
  29.         LCD_Init();                                        //LCD初始化  
  30.         KEY_Init();                                        //按鍵初始化  
  31.         W25QXX_Init();                                //初始化W25Q128
  32.         usmart_dev.init(168);                //初始化USMART
  33.         my_mem_init(SRAMIN);                //初始化內(nèi)部內(nèi)存池
  34.         my_mem_init(SRAMCCM);                //初始化CCM內(nèi)存池
  35.         exfuns_init();                                //為fatfs相關變量申請內(nèi)存  
  36.           f_mount(fs[0],"0:",1);                 //掛載SD卡
  37.         f_mount(fs[1],"1:",1);                 //掛載FLASH.
  38. //        W25QXX_Erase_Chip();//擦除
  39.         while(font_init())                         //檢查字庫
  40.         {
  41. UPD:   
  42.                 LCD_Clear(WHITE);                           //清屏
  43.                 POINT_COLOR=RED;                        //設置字體為紅色                                
  44.                 LCD_ShowString(30,50,200,16,16,"Mcudev STM32F4");
  45.                 while(SD_Init())                        //檢測SD卡
  46.                 {
  47.                         LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
  48.                         delay_ms(200);
  49.                         LCD_Fill(30,70,200+30,70+16,WHITE);
  50.                         delay_ms(200);                    
  51.                 }                                                                                                                     
  52.                 LCD_ShowString(30,70,200,16,16,"SD Card OK");
  53.                 LCD_ShowString(30,90,200,16,16,"Font Updating...");
  54.                 key=update_font(20,110,16,"0:");//更新字庫
  55.                 while(key)//更新失敗               
  56.                 {                                           
  57.                         LCD_ShowString(30,110,200,16,16,"Font Update Failed!");
  58.                         delay_ms(200);
  59.                         LCD_Fill(20,110,200+20,110+16,WHITE);
  60.                         delay_ms(200);                       
  61.                 }                   
  62.                 LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
  63.                 delay_ms(1500);       
  64.                 LCD_Clear(WHITE);//清屏               
  65.         }  
  66.         POINT_COLOR=RED;      
  67.         Show_Str(30,50,200,16,"Mcudev_STM32F407開發(fā)板",16,0);                                             
  68.         Show_Str(30,70,200,16,"GBK字庫測試程序",16,0);                                             
  69.         //Show_Str(30,90,200,16,"嵌入式開發(fā)網(wǎng)mcudev",16,0);                                             
  70.         Show_Str(30,110,200,16,"2018年4月22日",16,0);
  71.         Show_Str(30,130,200,16,"按KEY0,更新字庫",16,0);
  72.         POINT_COLOR=BLUE;  
  73.         Show_Str(30,150,200,16,"內(nèi)碼高字節(jié):",16,0);                                             
  74.         Show_Str(30,170,200,16,"內(nèi)碼低字節(jié):",16,0);                                             
  75.         Show_Str(30,190,200,16,"漢字計數(shù)器:",16,0);

  76. //        Show_Str(30,220,200,24,"對應漢字為:",24,0); //因為FLASH W25Q16無法裝下所有三種字庫,暫時不提供對24點陣字庫的顯示
  77.         Show_Str(30,244,200,16,"對應漢字(16*16)為:",16,0);                         
  78.         Show_Str(30,260,200,12,"對應漢字(12*12)為:",12,0);                         
  79.         while(1)
  80.         {
  81.                 fontcnt=0;
  82.                 for(i=0x81;i<0xff;i++)
  83.                 {               
  84.                         fontx[0]=i;
  85.                         LCD_ShowNum(118,150,i,3,16);                //顯示內(nèi)碼高字節(jié)   
  86.                         for(j=0x40;j<0xfe;j++)
  87.                         {
  88.                                 if(j==0x7f)continue;
  89.                                 fontcnt++;
  90.                                 LCD_ShowNum(118,170,j,3,16);        //顯示內(nèi)碼低字節(jié)         
  91.                                 LCD_ShowNum(118,190,fontcnt,5,16);//漢字計數(shù)顯示         
  92.                                  fontx[1]=j;
  93. //                                Show_Font(30+132,220,fontx,24,0);          
  94.                                 Show_Font(30+144,244,fontx,16,0);                                            
  95.                                 Show_Font(30+108,260,fontx,12,0);                                            
  96.                                 t=200;
  97.                                 while(t--)//延時,同時掃描按鍵
  98.                                 {
  99.                                         delay_ms(1);
  100.                                         key=KEY_Scan(0);
  101.                                         if(key==KEY0_PRES)goto UPD;
  102.                                 }
  103.                                 LED0=!LED0;
  104.                         }   
  105.                 }       
  106.         }
  107. }

  108. //int main(void)
  109. //{               
  110. //        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統(tǒng)中斷優(yōu)先級分組2
  111. //       
  112. //        delay_init(168);  //初始化延時函數(shù)
  113. //        uart_init(115200);                //初始化串口波特率為115200
  114. //        LED_Init();                                        //初始化LED  
  115. //         LCD_Init();                                        //LCD初始化  
  116. //         KEY_Init();                                        //按鍵初始化  
  117. //        W25QXX_Init();                                //初始化W25Q128
  118. //        usmart_dev.init(168);                //初始化USMART
  119. //        my_mem_init(SRAMIN);                //初始化內(nèi)部內(nèi)存池
  120. //        my_mem_init(SRAMCCM);                //初始化CCM內(nèi)存池
  121. //        exfuns_init();                                //為fatfs相關變量申請內(nèi)存  
  122. //          f_mount(fs[0],"0:",1);                 //掛載SD卡
  123. //         f_mount(fs[1],"1:",1);                 //掛載FLASH.
  124. ////        W25QXX_Erase_Chip();//擦除
  125. //       
  126. //        while(font_init())                         //檢查字庫
  127. //        {   
  128. //                LCD_Clear(WHITE);                           //清屏
  129. //                 POINT_COLOR=RED;                        //設置字體為紅色                                
  130. //                LCD_ShowString(30,50,200,16,16,"Mcudev STM32F4");
  131. //                while(SD_Init())                        //檢測SD卡
  132. //                {
  133. //                        LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
  134. //                        delay_ms(200);
  135. //                        LCD_Fill(30,70,200+30,70+16,WHITE);
  136. //                        delay_ms(200);                    
  137. //                }                                                                                                                     
  138. //                   
  139. //                LCD_ShowString(30,110,200,16,16,"Font Update Success!   ");
  140. //                delay_ms(1500);       
  141. //                LCD_Clear(WHITE);//清屏               
  142. //        }  
  143. //       
  144. //        POINT_COLOR=RED;      
  145. //        Show_Str(30,50,200,16,"Mcudev_STM32F407開發(fā)板",16,0);                                             
  146. //        Show_Str(30,70,200,16,"GBK字庫測試程序",16,0);                                             
  147. //        Show_Str(30,90,200,16,"嵌入式開發(fā)網(wǎng)mcudev",16,0);                                             
  148. //        Show_Str(30,110,200,16,"2015年8月15日",16,0);
  149. //        Show_Str(30,130,200,16,"按KEY0,更新字庫",16,0);
  150. //         POINT_COLOR=BLUE;  
  151. //        Show_Str(30,150,200,16,"林本源vdfdhdfhfhfhfgh斯蒂芬歸還建行開戶結果就發(fā)給回復:",16,0);                                             
  152. ……………………

  153. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
CS_show_HZ.rar (8.96 MB, 下載次數(shù): 88)
回復

使用道具 舉報

ID:575489 發(fā)表于 2019-10-14 13:48 | 顯示全部樓層
正是需要的,謝謝!
回復

使用道具 舉報

ID:575489 發(fā)表于 2019-10-14 13:49 | 顯示全部樓層
這個要支持一下!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情精品久久久久久 | аⅴ资源新版在线天堂 | 又黑又粗又长的欧美一区 | heyzo在线| 成人字幕网zmw | 日韩精品一区二区三区中文在线 | 国产成人精品一区二区 | 久久777 | 亚洲精品国产成人 | 久久久久国产成人精品亚洲午夜 | 欧美一页 | 成人午夜免费网站 | 久久999| 国产精品成人一区二区三区 | 成人在线中文字幕 | 欧美一级二级三级视频 | 欧美亚洲一区二区三区 | 99re在线视频 | 国产精品久久久久久久一区探花 | 日本在线小视频 | h视频免费在线观看 | 91欧美精品成人综合在线观看 | 一级黄片一级毛片 | 精品视频在线一区 | 亚洲一区二区三区免费在线观看 | 中文字幕免费 | 九九热在线精品视频 | 久久丁香 | 欧美精品在线看 | 国产精品免费大片 | 国产乱码精品1区2区3区 | 视频一区 国产精品 | 亚洲日韩中文字幕一区 | 久久久久久国产精品久久 | 中文字幕免费中文 | 亚洲精品二区 | 在线免费观看日本视频 | 1000部精品久久久久久久久 | 久久久精彩视频 | 午夜一区二区三区在线观看 | 国产三级一区二区三区 |