當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]使用TFT觸摸屏?xí)r,想要對(duì)字符串,圖形或者數(shù)字進(jìn)行顯示時(shí),發(fā)現(xiàn)他們的庫(kù)函數(shù)中都有一個(gè)最重要的函數(shù)LCD_ShowChar,貌似目前很少有人分析這個(gè)函數(shù),雖然簡(jiǎn)單但是還是有點(diǎn)繞的。先貼一下這個(gè)函數(shù)的代碼,由于函數(shù)顯示分

使用TFT觸摸屏?xí)r,想要對(duì)字符串,圖形或者數(shù)字進(jìn)行顯示時(shí),發(fā)現(xiàn)他們的庫(kù)函數(shù)中都有一個(gè)最重要的函數(shù)LCD_ShowChar,貌似目前很少有人分析這個(gè)函數(shù),雖然簡(jiǎn)單但是還是有點(diǎn)繞的。

先貼一下這個(gè)函數(shù)的代碼,由于函數(shù)顯示分為疊加顯示和非疊加顯示,原理類(lèi)似,所以只分析非疊加方式的部分應(yīng)該就都懂了。

void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)

{

u8 temp,t1,t;

u16 y0=y;

u16 colortemp=POINT_COLOR;

num=num-' ';//得到偏移后的值

if(!mode) //非疊加方式

{

for(t=0;t

{

if(size==12)temp=asc2_1206[num][t]; //調(diào)用1206字體

else temp=asc2_1608[num][t]; //調(diào)用1608字體

for(t1=0;t1<8;t1++)

{

if(temp&0x80)POINT_COLOR=colortemp;

else POINT_COLOR=BACK_COLOR;

LCD_DrawPoint(x,y);

temp<<=1;

y++;

if(x>=lcddev.width){POINT_COLOR=colortemp;return;}//超區(qū)域了

if((y-y0)==size)

{

y=y0;

x++;

if(x>=lcddev.width){POINT_COLOR=colortemp;return;}//超區(qū)域了

break;

}

}

}

}

1206字體和1608字體是兩種不同的字號(hào),就是一個(gè)橫向6點(diǎn),縱向12點(diǎn),一個(gè)橫向8點(diǎn),縱向16點(diǎn),從判斷語(yǔ)句可以看出,二者對(duì)應(yīng)的碼表是不一樣的,這個(gè)碼表在工程里搜索一下,在font.h里,是一個(gè)二維數(shù)組。我們這里使用1608字體,以字母“M”為例。查一下碼表中“M”對(duì)應(yīng)的數(shù)組,如下:

{0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00},

' '是碼表的開(kāi)始,由字母減去' '得到偏移量,也就是二維數(shù)組的第幾行。第一個(gè)循環(huán)開(kāi)始,就給臨時(shí)變量temp賦值為數(shù)組的第一個(gè)值,由于是1608字體,因此也有一個(gè)數(shù)組中有16個(gè)數(shù),第一個(gè)循環(huán)就是為了讓temp遍歷這16個(gè)數(shù)。

之后第二個(gè)循環(huán)開(kāi)始,由于數(shù)組中的每一個(gè)數(shù)均是8位,由于每次循環(huán)都會(huì)對(duì)temp左移一位,因此第二個(gè)循環(huán)的次數(shù)是8次。經(jīng)if(temp&0x80)判斷,如果數(shù)字的最高位為1,則進(jìn)行描點(diǎn)的顏色為字體顏色,如果不是1,則描點(diǎn)顏色為底色。(PS:描點(diǎn)函數(shù)LCD_DrawPoint還是很簡(jiǎn)單滴,總的來(lái)說(shuō)就是向?qū)慓RAM寄存器R20h,R21h寫(xiě)入我們希望寫(xiě)的點(diǎn)顏色,基本操作O(∩_∩)O)

每次移位,y都會(huì)自加,第二個(gè)循環(huán)是8次,而size為16,也就是說(shuō)數(shù)組中每讀過(guò)兩個(gè)數(shù),y自加16次之后都會(huì)清零,然后x加1,就像列掃描一樣,一列16個(gè)點(diǎn)結(jié)束后會(huì)進(jìn)行到下一列。

超區(qū)域那部分就是說(shuō)超過(guò)size了,描個(gè)點(diǎn)就返回啦。下面以“M”為例描述下描點(diǎn)的過(guò)程。

碼表前8個(gè)

0x10 (0,3)

0x04 (0,13)

0x1F (1,3),(1,4),(1,5),(1,6),(1,7)

0xFC (1,8),(1,9),(1,10),(1,11),(1,12),(1,13)

0x1F (2,3),(2,4),(2,5),(2,6),(2,7)

0x00 無(wú)

0x00 無(wú)

0xFC (3,8),(3,9),(3,10),(3,11),(3,12),(3,13)

碼表后8個(gè)

0x1F (4,3),(4,4),(4,5),(4,6),(4,7)

0x00 無(wú)

0x1F (5,3),(5,4),(5,5),(5,6),(5,7)

0xFC (5,8),(5,9),(5,10),(5,11),(5,12),(5,13)

0x10 (6,3)

0x04 (6,13)

0x00 無(wú)

0x00 無(wú)

這個(gè)不直觀啊,用matlab的scatter(x,y)描個(gè)點(diǎn),正好就是TFT屏幕顯示的“M”圖形


以上就是ILI9320描點(diǎn)函數(shù)LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)的全過(guò)程。希望第一次學(xué)的小伙伴看了能明白


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉