單片機(jī)驅(qū)動(dòng)TFT彩色液晶屏系列講座
目錄
第一講 單片機(jī)最小系統(tǒng)STM32F103C6T6通過(guò)RA8889驅(qū)動(dòng)彩色液晶屏播放視頻
第二講 單片機(jī)最小系統(tǒng)STM32F103C6T6控制RA8889驅(qū)動(dòng)彩色液晶屏硬件框架
第三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:如何初始化
第四講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:繪圖
第五講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示文字:Part1.內(nèi)部字庫(kù)
第六講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示文字:Part2.外接字庫(kù)
第七講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示文字:Part3.自建字庫(kù)
第八講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯示圖片
第九講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:顯存操作
第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算
第十一講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:播放avi視頻
第十二講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 如何打包bin檔
第十三講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 bin檔的燒錄方法
常用的圖像運(yùn)算主要包括:復(fù)制、去底色、單色位圖延展上色、淡入淡出這些功能,下面逐一進(jìn)行介紹如何使用:
圖像復(fù)制
API函數(shù)如下,Chroma表示透明色剔除功能:
void BTE_Memory_Copy(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long S1_Addr,unsigned short S1_W,unsigned short XS1,unsigned short YS1,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned int ROP_Code,unsigned short X_W,unsigned short Y_H);
void BTE_Memory_Copy_Chroma_key(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned long Background_color,unsigned short X_W,unsigned short Y_H);
RA8889的代碼是透明開(kāi)放的,我們可以逐層進(jìn)去看實(shí)際算法,也可以查看具體的寄存器操作,初步接觸瑞佑的芯片可以先用用API即可,有興趣的話(huà)可以進(jìn)入底層查看代碼,相當(dāng)靈活。
我們進(jìn)入一個(gè)API函數(shù)代碼看看:
void BTE_Memory_Copy(
unsigned long S0_Addr // Start address of Source 0
,
unsigned short S0_W // image width of Source 0 (recommend = canvas image width)
,
unsigned short XS0 // coordinate X of Source 0
,
unsigned short YS0 // coordinate Y of Source 0
,
unsigned long S1_Addr // Start address of Source 1
,
unsigned short S1_W // image width of Source 1 (recommend = canvas image width)
,
unsigned short XS1 // coordinate X of Source 1
,
unsigned short YS1 // coordinate Y of Source 1
,
unsigned long Des_Addr // start address of Destination
,
unsigned short Des_W // image width of Destination (recommend = canvas image width)
,
unsigned short XDes // coordinate X of Destination
,
unsigned short YDes // coordinate Y of Destination
,
unsigned int ROP_Code
/*ROP_Code :
0000b 0(Blackness)
0001b ~S0!E~S1 or ~(S0+S1)
0010b ~S0!ES1
0011b ~S0
0100b S0!E~S1
0101b ~S1
0110b S0^S1
0111b ~S0 + ~S1 or ~(S0 + S1)
1000b S0!ES1
1001b ~(S0^S1)
1010b S1
1011b ~S0+S1
1100b S0
1101b S0+~S1
1110b S0+S1
1111b 1(whiteness)*/
,
unsigned short X_W // X_W : Width of BTE Window
,
unsigned short Y_H // Y_H : Length of BTE Window
)
{
BTE_S0_Memory_Start_Address(S0_Addr);
BTE_S0_Image_Width(S0_W);
BTE_S0_Window_Start_XY(XS0, YS0);
BTE_S1_Memory_Start_Address(S1_Addr);
BTE_S1_Image_Width(S1_W);
BTE_S1_Window_Start_XY(XS1, YS1);
BTE_Destination_Memory_Start_Address(Des_Addr);
BTE_Destination_Image_Width(Des_W);
BTE_Destination_Window_Start_XY(XDes, YDes);
BTE_ROP_Code(ROP_Code);
BTE_Operation_Code(0x02); // BTE Operation: Memory copy (move) with ROP.
BTE_Window_Size(X_W, Y_H);
BTE_Enable();
Check_BTE_Busy();
}
瑞佑的API是可以從函數(shù)名推測(cè)其功能的,有些函數(shù)名稱(chēng)包含了參數(shù)信息,跟據(jù)參數(shù)名稱(chēng)就可判斷參數(shù)功能,具體的參數(shù)在API函數(shù)都有作了詳細(xì)說(shuō)明,實(shí)際寫(xiě)代碼時(shí)可以再進(jìn)入函數(shù)查詢(xún)。
針對(duì)BTE_Memory_Copy這個(gè)函數(shù),參數(shù)可分為五個(gè)部分,參考下方圖解說(shuō)明:
所有圖像操作API函數(shù)都包括S0、S1和Des三部份。比如BTE_Memory_Copy_Chroma_key相比BTE_Memory_Copy只是換了一個(gè)參數(shù)Background_color,這個(gè)參數(shù)作用是復(fù)制時(shí)同時(shí)剔除這個(gè)背景顏色,其它功能都相近了。
圖像延展
圖像延展指的是把1bpp圖像延展為16bpp圖像。1bpp圖片高度不限,寬度須為8的倍數(shù)。
當(dāng)我們將1bpp寫(xiě)入顯存時(shí),實(shí)際顯示出來(lái)圖像看起來(lái)水平方向壓扁了一樣。通過(guò)BTE_Memory_Copy_ColorExpansion這個(gè)函數(shù)轉(zhuǎn)換,數(shù)據(jù)為1轉(zhuǎn)為前景色,數(shù)據(jù)為0會(huì)轉(zhuǎn)為背景色,如果換作BTE_Memory_Copy_ColorExpansion_Chroma_key函數(shù),則只將數(shù)據(jù)1轉(zhuǎn)換為前景色,數(shù)據(jù)0不處理,即為透明色。這個(gè)功能在我們做圖標(biāo)、數(shù)字表盤(pán)是相當(dāng)有用的功能!
圖形延展API函數(shù):
void BTE_Memory_Copy_ColorExpansion(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned short X_W,unsigned short Y_H,unsigned long Foreground_color,unsigned long Background_color);
void BTE_Memory_Copy_ColorExpansion_Chroma_key(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned short X_W,unsigned short Y_H,unsigned long Foreground_color);
圖形延展實(shí)際效果:
淡入淡出
淡入淡出是通過(guò)RA8889的硬件加速功能實(shí)現(xiàn)的,通過(guò)控制 alpha 值即可控制兩張圖片的明淡效果,這種功能如果采用單片機(jī)進(jìn)行軟件處理,那會(huì)占用相當(dāng)大的資源,很難實(shí)用,而通過(guò)RA8889/RA8876可輕松實(shí)現(xiàn)該功能。
淡入淡出API函數(shù):
void BTE_Alpha_Blending_Picture_Mode(unsigned long S0_Addr,unsigned short S0_W,unsigned short XS0,unsigned short YS0,unsigned long S1_Addr,unsigned short S1_W,unsigned short XS1,unsigned short YS1,unsigned long Des_Addr,unsigned short Des_W, unsigned short XDes,unsigned short YDes,unsigned short X_W,unsigned short Y_H,unsigned char alpha);
淡入淡出實(shí)例演示:
RA8889/RA8876淡入淡出演示
第十講 THE END文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-814934.html
了解更多信息:http://www.lcdvision.com.cn文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-814934.html
到了這里,關(guān)于第十講 單片機(jī)驅(qū)動(dòng)彩色液晶屏 控制RA8889軟件:圖像運(yùn)算的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!