999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Arduino平臺(tái)BDF字庫(kù)像素?cái)?shù)據(jù)壓縮算法及顯示程序設(shè)計(jì)研究

2021-11-22 08:13:58
物聯(lián)網(wǎng)技術(shù) 2021年11期

彭 偉

(武漢城市職業(yè)學(xué)院,湖北 武漢 430064)

0 引 言

物聯(lián)網(wǎng)嵌入式系統(tǒng)節(jié)點(diǎn)微控制器,通常直接提取使用未經(jīng)壓縮的字符像素?cái)?shù)據(jù)用于驅(qū)動(dòng)顯示,導(dǎo)致嵌入式系統(tǒng)資源被大量占用,而U8G2圖形驅(qū)動(dòng)庫(kù)則非常好地解決了這一問題。本文將提取U8G2的像素?cái)?shù)據(jù)并剖析研究行程編碼壓縮算法;在Proteus環(huán)境下設(shè)計(jì)Arduino+OLED電路[1-4]進(jìn)行顯示仿真測(cè)試,為物聯(lián)網(wǎng)嵌入式系統(tǒng)類似設(shè)計(jì)提供重要參考。

1 U8G2驅(qū)動(dòng)與BDF字庫(kù)簡(jiǎn)介

1.1 U8G2顯示驅(qū)動(dòng)

U8G2是單色LCD、OLED及eInk顯示驅(qū)動(dòng)庫(kù),以頁(yè)面緩沖模式下的顯示程序?yàn)槔?,針?duì)OLED有語句U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI u8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8),可構(gòu)造面向 OLED(SSD1306)的 U8G2對(duì)象,同時(shí)完成SPI接口引腳配置。U8G2顯示字符通過enableUTF8Print()使其能支持Unicode編碼,通過setFont設(shè)置字體,通過drawStr輸出字符串。C程序中的字體像素?cái)?shù)據(jù)須符合u8g2fontformat要求,其最前面一段為編碼個(gè)數(shù)及比特位0和1的行程編碼寬度等,其后是各字符編碼、壓縮編碼長(zhǎng)度及行程編碼字節(jié)等。

1.2 BDF字庫(kù)結(jié)構(gòu)

BDF是Adobe字形位圖格式,使用ASCII編碼,以字體全局信息開始,其后是各字形位圖數(shù)據(jù)。以u(píng)nifont.bdf字庫(kù)文件為例,其開頭部分全局信息如下:

STARTFONT 2.1 /*字體文件版本*/

FONT XXX /*表示字體名*/

SIZE 16 75 75 /*字符大小及在XY方向分辨率

FONTBOUNDINGBOX 16 16 0 -2 /*X方向?qū)挾扰cY方向高度及XY方向偏移*/

STARTPROPERTIES 24 /*24為所列屬性個(gè)數(shù)*/

/*這里是大量公共屬性,具體內(nèi)容此略*/

ENDPROPERTIES /*全局屬性結(jié)束*/

CHARS 57086 /*字庫(kù)文件字符總個(gè)數(shù)*/

以下是各字符具體結(jié)構(gòu)信息,以"1"為例:

STARTCHAR U+0031 /*"1"的編碼*/

BBX 8 16 0 -2 /*字符邊框8*16,偏移0/-2*/

/*限于篇幅,這里略去了其他屬性項(xiàng)*/

BITMAP /*字符位圖點(diǎn)陣編碼起始標(biāo)識(shí)*/

/*以字符"1"的位圖像素為例,每1字節(jié)占一行,表示8像素,為縮減篇幅以下將16字節(jié)列于一行*/

00 00 00 00 08 18 28 08 08 08 08 08 08 3E 00 00

ENDCHAR /*字符結(jié)束標(biāo)志*/

/*限于篇幅,這里略去大量其他字符像素?cái)?shù)據(jù)*/

ENDFONT /*字體文件結(jié)束標(biāo)志*/

2 U8G2字符提取壓縮與顯示程序設(shè)計(jì)

2.1 U8G2對(duì)BDF字庫(kù)的像素?cái)?shù)據(jù)提取

將指定字符集各字符像素?cái)?shù)據(jù)從BDF文件提取到C文件,可使用U8G2提供的bdfconv.exe,它根據(jù)指定映射文件(如myFONT.map)給出的待提取字符集編碼從BDF字庫(kù)文件提取字符像素?cái)?shù)據(jù)并進(jìn)行RLE壓縮[5];然后以字符串形式存入C文件。假定myFONT.map內(nèi)有:$0031、$0032、$0041、$0042、$554a、$4e2d、$56fd,它們分別是字符“12AB 啊中國(guó)”的Unicode編碼,BDF字庫(kù)文件為unifont.bdf,轉(zhuǎn)換命令行及輸出示例如下:

bdfconv.exe -v ../bdf/unifont.bdf -b 0 -f 1 -M ../build/ myFONT.map-n MyU8g2fonts -o MyU8g2fonts.c

const uint8_t MyU8g2fonts[173] U8G2_FONT_SECTION("MyU8g2fonts") =

"7

主站蜘蛛池模板: 免费看黄片一区二区三区| 青青国产视频| 久久精品这里只有国产中文精品| 国产精品私拍99pans大尺度 | 永久免费精品视频| 2021精品国产自在现线看| 狠狠色噜噜狠狠狠狠奇米777| 日韩 欧美 小说 综合网 另类| 国产在线观看成人91| 亚洲无线一二三四区男男| 免费视频在线2021入口| 高清无码不卡视频| 国产欧美日韩资源在线观看| 亚洲成人一区二区三区| 午夜性刺激在线观看免费| 中文毛片无遮挡播放免费| 亚洲成肉网| 免费国产不卡午夜福在线观看| 国产制服丝袜无码视频| 国产91精品久久| 国产一级小视频| 日韩欧美视频第一区在线观看| 免费毛片在线| 婷婷开心中文字幕| 亚洲人成人伊人成综合网无码| 国产香蕉在线| 中文国产成人精品久久| 1024国产在线| 播五月综合| 成人在线观看一区| 91小视频在线| 亚洲精品成人福利在线电影| 国产菊爆视频在线观看| 亚洲bt欧美bt精品| 亚洲第一精品福利| a毛片在线| 女人18毛片久久| 美女裸体18禁网站| 日韩成人午夜| 亚洲精品老司机| 狠狠做深爱婷婷综合一区| 日韩在线欧美在线| 91在线免费公开视频| 国产色图在线观看| 麻豆精品在线| 高清精品美女在线播放| 97se亚洲综合不卡| 欧美在线中文字幕| 中文字幕亚洲综久久2021| 深爱婷婷激情网| 国产美女一级毛片| 天堂av综合网| 亚洲成人高清在线观看| 国产电话自拍伊人| 黄色福利在线| 伊人久久综在合线亚洲91| 日韩欧美中文字幕一本| 国产情侣一区二区三区| 欧美国产视频| 久久精品无码一区二区国产区| 国产在线精品美女观看| 四虎在线观看视频高清无码| 欧美伦理一区| 人妻免费无码不卡视频| 少妇精品久久久一区二区三区| 国产欧美日韩在线在线不卡视频| 9966国产精品视频| 亚洲中文字幕无码爆乳| 日韩毛片免费| 91成人免费观看| 97超爽成人免费视频在线播放| 国产午夜精品鲁丝片| 日韩高清欧美| 97久久超碰极品视觉盛宴| 91国内外精品自在线播放| 亚洲不卡影院| 亚洲啪啪网| 亚洲一区二区三区国产精华液| 国产导航在线| 亚洲欧美成人在线视频| 沈阳少妇高潮在线| 亚洲综合专区|