在工控領域的實際應用中,客戶經常需要使用LCD顯示屏進行一些簡單的文字和圖形顯示操作,如顯示公司的LOGO和開機畫面、顯示一些重要的參數指標等。英利嵌入式Linux工控主板可以直接支持6種單色點陣LCD顯示屏,分別是KS0108控制器的128x64點陣LCD、T6963C控制器的240x128點陣LCD、SED1335控制器的320x240點陣LCD、KS0108控制器的192x64點陣LCD、UC1698U控制器的160x160點陣LCD、YXD控制器的128x64點陣LCD。
對于文字的顯示,英利公司已有例程進行介紹,本文將詳細介紹單色BMP位圖的顯示方法。
1、制作符合顯示需要的單色BMP位圖
使用圖形編輯軟件制作用來顯示的圖片,并保存為位圖格式,然后使用Windows中的“畫圖”工具打開該圖片,另存為單色位圖(注:一定要存為單色位圖,否則無法顯示)。注意圖形的尺寸大小,如果待顯示圖形大于LCD的尺寸,則無法正確顯示。
2、使用英利提供的示例程序進行圖形顯示
英利提供了一個名為“test_bmp”的測試例程,其中包括了測試程序“test_bmp”以及用于圖形顯示的API函數。其中,API函數DisplayBmp( . . )中實現了對BMP文件的讀取、解析和顯示操作,客戶將制作好的圖片和測試程序test_bmp一同放在英利工控主板的/mnt/nandflash目錄中,通過命令行輸入如下命令:
[root@EM9X60 /mnt/nandflash]# ./test_bmp logo.bmp 3 30 10
即可以在LCD顯示屏上看到顯示效果。
該命令的4個參數說明如下:
logo.bmp:英利測試時使用的圖片。客戶實際使用的時候填寫自己的圖片名字
3:英利測試使用的是320x240點陣的顯示屏,定義為3號屏,因此此處的參數為3。如果使用其他分辨率的LCD,則填寫相應的
參數,參數與LCD對應關系如下:
1:KS0108控制器的128x64點陣LCD
2:T6963C控制器的240x128點陣LCD
3:SEED1335控制器的320x240點陣LCD
4:KS0108控制器的192x64點陣LCD
5:UC1698U控制器的160x160點陣LCD
6:YXD控制器的128x64點陣LCD
30:顯示屏x方向的起始顯示位置。如果不填,默認為0
10:顯示屏y方向的起始顯示位置。如果不填,默認為0
需注意的是:
1、用于顯示的圖片必須是單色位圖,且圖片的長寬尺寸必須小于LCD相應方向(x和y軸)的點陣數,否則無法顯示。
2、前兩個參數(圖片名、顯示屏分辨率)必須設置,否則系統報錯退出。
3、顯示屏參數中,只有數字1-6有效,其余輸入均視為無效參數,系統報錯退出。
4、后兩個參數是用于控制圖片顯示位置的,如果都不設置,則默認從左上角第一個點開始顯示。這兩個參數必須同時設置或者
留空,不能只設置一個。同時,如果設置的起始位置造成了圖片的溢出(即如果從起始位置開始顯示,圖片在x或者y軸方向的
尺寸已經大于了該方向剩余的LCD點陣數),也無法正確顯示。
3、圖形顯示示例程序說明
能夠使用示例程序進行單色位圖顯示以后,客戶可以以測試程序為藍本,針對自己的應用設計自己的圖形顯示程序。test_bmp的代碼和說明如下:
#include
#include
#include
#include 'lcd_api.h'
#include 'bmpdisplay.h'
int main( int argc, char** argv )
{
// 如果只設置了圖片名和顯示屏尺寸,則默認從左上角第一個點開始顯示
if( argc == 3 )
{
InitLcd( atoi(argv[2]) );
DisplayBmp( argv[1], 0, 0 );
}
// 如果設置了4個參數,則完全按照參數設置進行配置
else if( argc == 5 )
{
InitLcd( atoi(argv[2]) );
DisplayBmp( argv[1], atoi(argv[3]), atoi(argv[4]) );
}
else
{
printf( 'Parameter fail!\n' );
return -1;
}
sleep( 1 );
LCD_DeInit( );
return 0;
}
該例程很簡單,解析命令行傳入的參數以后調用英利提供的函數DisplayBmp即可以進行顯示。實際應用中,客戶用于顯示的圖片有可能只是一個,顯示屏也會固定一種型號,并不需要從命令行傳入參數進行解析,此時可以簡化上述程序,整個過程只需要如下四條語句:
InitLcd( 3 );
DisplayBmp( 'logo.bmp', 0, 0 );
sleep( 1 );
LCD_DeInit( );
對該示例程序感興趣的英利公司客戶可以來電或通過電子郵件索取相關代碼。
-
WINDOWS
+關注
關注
3文章
3545瀏覽量
88698 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35337
發布評論請先 登錄
相關推薦
評論