找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 10147|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

使用stm32f103c8t6開發(fā)板的中文字庫(kù)顯示實(shí)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本人學(xué)生水平一般,沒有錢購(gòu)買stm32的開發(fā)板,最近使用手頭有的一些元件,制作了一塊主控芯片為stm32f103c8t6的開發(fā)板。
這兩天研究了一下中文字庫(kù)的實(shí)現(xiàn),采用W25Q64存儲(chǔ)了GBK碼的中文字庫(kù),顯示到oled 的屏幕上。
實(shí)現(xiàn)方法主要是通過fatfs文件系統(tǒng)讀取sd卡中的字庫(kù)文件,將字庫(kù)文件寫入到flash中,然后根據(jù)漢字的GBK碼計(jì)算出漢字點(diǎn)陣存放的地址,讀取之后顯示在oled屏幕上。也可以通過串口發(fā)送字庫(kù)文件到單片機(jī),然后在寫入到flash中,方法都差不多。


#include "led.h"
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "key.h"
#include "flash.h"
#include "mmc_sd.h"        
#include "malloc.h"
#include "usart.h"
#include "ff.h"  
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"
#include "usmart.h"
int main(void)
{
        u8 key;
//        u8 res;
        //u8 data_FAFTS[24];
//        UINT bww;
        delay_init();                     //延時(shí)函數(shù)初始化         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級(jí)分組2
        uart_init(9600);                 //串口初始化為9600               
        OLED_Init();                        //初始化液晶
        LED_Init();         //LED初始化                                                                                                                     
        KEY_Init();                                //按鍵初始化                                 
        SPI_Flash_Init();        
        usmart_dev.init(72);        //usmart初始化        
         mem_init();                                //初始化內(nèi)存池            
         exfuns_init();                        //為fatfs相關(guān)變量申請(qǐng)內(nèi)存  
  f_mount(fs[0],"0:",1);         //掛載SD卡
         f_mount(fs[1],"1:",1);         //掛載FLASH.
        OLED_Init();                        //初始化OLED  
        OLED_Clear();
        while(font_init())         //檢查字庫(kù)
        {
                OLED_Clear();
                while(SD_Initialize())                                                        //檢測(cè)不到SD卡
                {
                        OLED_ShowString(0,0,"SD Card Error!",8);
                        delay_ms(500);
                        OLED_ShowString(0,0,"Please Check! ",8);
                        delay_ms(500);
                        LED0=!LED0;//DS0閃爍
                }
                OLED_ShowString(0,0,"SD Card OK",8);
                key=update_font(0,1,8);//更新字庫(kù) 更新失敗返回值為0
                while(key)//更新失敗               
                {                                          
                        OLED_ShowString(0,1,"Font Update Failed!",8);
                        delay_ms(500);               
                        LED0=!LED0;//DS0閃爍
                }
                OLED_ShowString(0,1,"Font Update Success!",8);
                delay_ms(1000);
                OLED_Clear();
        }
        Show_Str(0,0,"中文字庫(kù)實(shí)驗(yàn)",12,0);
        Show_Str(0,2,"STM32自制開發(fā)板",16,0);
        Show_Str(0,4,"51黑論壇",16,0);
        OLED_ShowString(0,6,"2018/3/5",16);
        while(1);
}



這里附上三個(gè)字庫(kù)文件: GBK字庫(kù)文件.zip (1.39 MB, 下載次數(shù): 163)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:143203 發(fā)表于 2018-11-11 23:31 | 只看該作者
SD卡模塊怎么連接的
回復(fù)

使用道具 舉報(bào)

板凳
ID:696977 發(fā)表于 2020-4-19 16:41 | 只看該作者
樓主能給一下完整的程序源碼么,我的內(nèi)存池初始化和SD_Initialize初始化一直有問題卡住
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表