1. 程式人生 > >STM32+TFT彩屏實現漢字字型檔顯示

STM32+TFT彩屏實現漢字字型檔顯示

TFT彩屏是大家經常用到的一個顯示模組,用來顯示字元圖片等一些資訊,作為產品的一個重要部分,實現人機互動。其中漢字顯示是非常必要的,顯示字元只需 要採用對應的取模軟體,把字元的點陣資料放在程式中即可。當我們要顯示少量且固定的漢字時也可以採用這種方法,但是,需要大量且隨機的漢字時,靠取模就不 能完成了,需要漢字字型檔來實現。 這個實驗使用的漢字大小是16*16,字型檔是放在SD卡根目錄下sys資料夾中的。下面簡單的解釋一下實現過程。 先來一張圖片看看實驗效果。

本實驗中,涉及到SD卡的使用,檔案系統的移植,LCD屏的使用等。這裡主要說明的是LCD的漢字顯示,首先是對SD卡的初始化,以及LCD的初始化。然後下面開始漢字以及一些字元的顯示,字元的顯示還是採用的字元點陣的方式。

QQ截圖20140624173814.png

首先是判斷的顯示位置,是否超過屏的顯示範圍,如果超過則是實現換行功能。然後下面是判斷顯示內容的ASCII知道下一個要顯示的是字元還是漢字,如果 ASCII大於0x80,則是漢字,小於0x80則是字元。因為字元是16*8,所以每顯示一個字元橫座標+8,如果是漢字(16*16),橫座標 是+16。如果你要使用其它大小的字型顯示,請修改相應的資料。QQ截圖20140624174313.png

在主要講解漢字顯示,字元顯示和漢字一樣的道理。顯示漢字裡面,首先開闢一個緩衝區,用來儲存點陣資料,然後獲取點陣資料,下面是通過獲取的點陣資料來進 行打點顯示。注意我們是16*16的字型,所以每行16個點,一共16行。這裡簡單說一下打點,主要是採用設定一塊16*16顯示區域,然後逐一把每個點 的資料送給LCD即可,注意要設定號彩屏內部的地址自增方向。否則容易出現錯位等現象。注意最後要把顯示區域設定成全屏顯示。

QQ截圖20140624180111.png

怎麼在字型檔中找到對應的漢字點陣資訊,這裡的檔案系統已經移植好了,開啟字型檔檔案。注意的是,每個漢字都有一個內碼,佔兩個位元組,通過漢字內碼的高低字 節,通過公式32*((High8bit-0xa0-1)*94+(Low8bit-0xa0-1))來找到該漢字在字型檔中的偏移位置,然後讀取32個字 節,也就是該漢字的點陣資料。字型是16*16=256。256/8=32位元組。最後關閉檔案就可以了。QQ截圖20140624180840.png

在整個實驗中,要注意字型大小的設定,以及LCD設定的地址自增方向,否則容易出現錯位現象。