日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 消費電子 > 消費電子
[導(dǎo)讀]4.系統(tǒng)軟件設(shè)計本系統(tǒng)的軟件主要由系統(tǒng)各模塊初始化、μC/GUI建立人機交互界面、文件系統(tǒng)讀取圖片及字庫文件、圖片解碼算法的實現(xiàn)、觸摸瀏覽功能及幻燈片播放功能等功能模

4.系統(tǒng)軟件設(shè)計

本系統(tǒng)的軟件主要由系統(tǒng)各模塊初始化、μC/GUI建立人機交互界面、文件系統(tǒng)讀取圖片及字庫文件、圖片解碼算法的實現(xiàn)、觸摸瀏覽功能及幻燈片播放功能等功能模塊組成。

4.1 μC/GUI建立人機交互界面本系統(tǒng)利用μC/GUI builder建立μC/GUI人機交互界面,在μC/GUI builder中建立窗體、文本框、控件等、將編譯后產(chǎn)生的C文件添加到工程目錄中。μC/GUI builder的應(yīng)用,縮短了界面開發(fā)周期,修改靈活方便,后期修改界面時,只需要在μC/GUI builder修改相關(guān)組件,編譯運行即可實現(xiàn)程序的修改。

4.2 μC/GUI顯示漢字

μC/GUI中通過查找字模的方式來實現(xiàn)字體的顯示。字體庫中的每一個字母都有其對應(yīng)的字模,字模由結(jié)構(gòu)體GUI_FONT和GUI_FONT_PROP統(tǒng)一管理。但是μC/GUI中本身只支持英文,沒有提供中文的字庫源碼文件。本系統(tǒng)在修改μC/GUI字庫顯示驅(qū)動函數(shù)的基礎(chǔ)上實現(xiàn)了漢字的顯示,以顯示12*12點陣漢字為例,具體的修改步驟如下:

第一步:在GUI.H中聲明全局結(jié)構(gòu)體對象GUI_Font12_HZ;

第二步:定義存放字模數(shù)據(jù)的數(shù)組;

第三步:定義用于說明每個字母的字模數(shù)據(jù)在程序段存儲方式的結(jié)構(gòu)體;

第四步:根據(jù)漢字內(nèi)碼高位定義多個結(jié)構(gòu)體,用于存放字庫字模編碼和字模數(shù)據(jù)存放地址的映像;

第五步:將創(chuàng)建的漢字庫文件HZK12.C添加至μC/GUI工程,在主函數(shù)中調(diào)用顯示函數(shù)。

通過以上步驟實現(xiàn)了中文漢字在μC/GUI界面的顯示,經(jīng)測試,漢字顯示流暢穩(wěn)定。

4.3 圖片解碼算法

JPEG圖片解碼顯示包括解析JPEG頭文件信息、基于連續(xù)DCT編碼的JPEG解碼算法處理、轉(zhuǎn)換圖像格式、液晶顯示等部分,總體流程圖如圖7所示。

 

 

4.3.1 解析JPEG頭文件信息

對JPEG解碼的過程進行初始化,獲取JPEG頭文件中的相關(guān)信息,本系統(tǒng)的方法是設(shè)計一系列的結(jié)構(gòu)體對應(yīng)頭文件中的各個信息標(biāo)記,并存儲標(biāo)記內(nèi)表示的信息,如色彩信息、采樣比、圖片尺寸、量化表、Huffman解碼表等重要信息。

4.3.2 基于連續(xù)DCT編碼的JPEG解碼算法

基于連續(xù)DCT編碼的JPEG解碼算法包括熵解碼、反量化和反向離散余弦變換(IDCT)共三個步驟。JPEG基本系統(tǒng)的解碼器結(jié)構(gòu)圖如圖8所示。

 

 

(1)熵解碼。熵解碼的輸入信號是被壓縮編碼的比特流,輸出是被解碼得到的DCT變換系數(shù)的量化值。通過查找Huffman解碼表將壓縮圖像數(shù)據(jù)還原成交流AC系數(shù)和直流DC系數(shù)組成的量化數(shù)據(jù)塊。

熵解碼對讀入的圖像數(shù)據(jù)進行DC直流系數(shù)和AC交流系數(shù)的Huffman解碼。JPEG算法提供標(biāo)準(zhǔn)的Huffman碼表,針對每幅圖像都有各自不同的特點,系統(tǒng)熵解碼采用自適應(yīng)的Huffman碼表。采用自適應(yīng)的Huffman碼表,首先統(tǒng)計輸入圖像數(shù)據(jù)的特性,生成碼樹,再反推得到各級Huffman碼表。

在JPEG頭文件信息的標(biāo)記中,定義了一張表用來記錄Huffman樹其代碼長度限制在16bit以內(nèi)。JPEG頭文件信息一般包含4個Huffman碼:用于解碼直流DC系數(shù)的Huffman碼表,其中包括一個亮度表和一個色度表;用于解碼交流AC系數(shù)的Huffman碼表,其中包括一個亮度表和一個色度表。根據(jù)Huffman碼表在文件中的保存形式,設(shè)計Huffman解碼一個碼字的程序,程序流程圖如圖9所示。

 

 

解碼時,輸入圖像壓縮后的數(shù)據(jù)流,從數(shù)據(jù)流中讀取比特數(shù)據(jù)組成的碼字,在Huffman樹中搜索碼字的位置,根據(jù)碼字的位置確定解碼的值,解碼輸出結(jié)果是一個8位值。在Huffman解碼過程中,如果產(chǎn)生了一個0xFF,就用0xFF0x00代替,把0xFF0x00當(dāng)做0xFF進行處理。

(2)反量化。反量化的輸入信號是熵解碼后的數(shù)據(jù),通過查量化表進行計算,將在壓縮過程中經(jīng)過DCT變換后的頻率系數(shù)還原出來,反量化成DCT系數(shù)。

JPEG文件中包括亮度量化表和色度量化表兩張量化表,將Huffman解碼得到的系數(shù)矩陣與相應(yīng)的量化矩陣相乘,即得到反量化結(jié)果。

由于數(shù)據(jù)是按8×8矩陣的“Z”字形編排,所以要對反量化運算的結(jié)果進行反Zig-Zag變換。

(3)反向離散余弦變換(IDCT)。反向離散余弦變換把頻率域DCT分量系數(shù)反轉(zhuǎn)成顏色空間域表示的圖像數(shù)據(jù)。對反量化后得到的DCT變換系數(shù)經(jīng)過反向離散余弦變換IDCT得到圖像的像素。反離散余弦轉(zhuǎn)換的輸入是頻率域的一個8×8分量系數(shù)塊,輸出則得到空間域的一個8×8像素塊。

在程序運行過程中,IDCT運算量較大,有大量浮點乘法和加法運算,程序執(zhí)行速度較慢,這對圖片能否流暢的顯示有很大影響?;诖吮窘y(tǒng)軟件對IDCT算法了優(yōu)化,采用一種快速IDCT算法[5],把二維IDCT分解成行和列兩個一維IDCT,再將IDCT算法通過數(shù)學(xué)變換轉(zhuǎn)化為離散傅里葉逆變換(IDFT),利用矩陣變換簡化計算。在開始進行二維IDCT轉(zhuǎn)換時,先對輸入的反量化后的數(shù)據(jù)進行8次一維的行變換,并將存儲運行結(jié)果,再對運行的結(jié)果進行8次一維的列變換,經(jīng)過兩次變換,得到的就是二維IDCT運算變換的結(jié)果。程序流程圖如圖10所示。

 

 

4.3.3 色彩模式轉(zhuǎn)換

由于液晶支持的是RGB格式的圖像數(shù)據(jù),需要把執(zhí)行完解碼過程得到的YCrCb格式的數(shù)據(jù)轉(zhuǎn)換成RGB模式,將256級的YCrCb色彩模型轉(zhuǎn)換成RGB色彩模型的計算公式如式(1)。

 

 

因為R、G、B的取值范圍為[0,255],需要對運算結(jié)果進行閾值保護,對超過255的數(shù)值,限定在255,小于0的數(shù)值,限定在0.經(jīng)過運算最終可以得到RGB模式的圖像數(shù)據(jù),完成解碼過程。

4.4 圖片瀏覽模式

本系統(tǒng)的圖片瀏覽模式有觸摸手動瀏覽和定時自動瀏覽兩種模式可供選擇。在觸摸手動瀏覽模式下,有“下一張”,“上一張”,“退出”控件。通過操作觸摸屏上下翻頁的控件,實現(xiàn)瀏覽圖片的功能。在瀏覽完最后一張時,系統(tǒng)會自動跳轉(zhuǎn)到第一張。在定時自動瀏覽模式下,界面僅有退出控件,每隔3秒,自動進行下一張圖片的瀏覽,并循環(huán)顯示。

5.系統(tǒng)調(diào)試

5.1 硬件調(diào)試

通過硬件電路設(shè)計,檢查元器件之間的電氣連接,下載基本調(diào)試程序,檢測系統(tǒng)板運行狀況,在對USB枚舉測試時,通過USB數(shù)據(jù)線連接至電腦,可以對flash存儲設(shè)備進行讀寫操作。

5.2 軟件調(diào)試

5.2.1 LIB庫的編譯

本系統(tǒng)的軟件開發(fā)環(huán)境是MDK,在程序基本模塊的底層驅(qū)動編寫完善以后,將STM32的底層外設(shè)驅(qū)動庫和μC/GUI庫函數(shù)編譯封裝成LIB庫,在后期程序開發(fā)時,大大提高了程序的編譯效率,縮短了軟件開發(fā)周期。

5.2.2 Finsh Shell調(diào)試組件本系統(tǒng)采用RT-Thread嵌入式操作系統(tǒng),通過其自帶的用戶命令行組件Finsh Shell查看系統(tǒng)運行狀況。通過超級終端輸入相應(yīng)的命令來使用Finsh Shell.Finsh Shell在RT-Thread中被設(shè)計成一個獨立的線程,通過串口設(shè)備輸入相應(yīng)的命令,系統(tǒng)對用戶命令進行解析執(zhí)行,可用來獲取系統(tǒng)運行時信息,對任意寄存器和內(nèi)存地址進行讀寫操作,還能夠直接在shell中調(diào)用系統(tǒng)函數(shù),訪問系統(tǒng)變量。FinshShell組件的使用,在很大程度上提高了調(diào)試程序的效率。

5.2.3 圖片解碼調(diào)試

由于圖片解碼算法占用內(nèi)存較大,考慮到圖片解碼算法在STM32中可能會因為內(nèi)存分配不足而無法正常運行,在驗證圖片解碼函數(shù)的正確性時,先在PC機的VC模擬器上運行,用以給圖片解碼算法提供一個理想的運行平臺。在模擬器中,用數(shù)組存儲圖片二進制源碼,用解碼算法對圖片的數(shù)組數(shù)據(jù)進行解碼,驗證解碼算法的正確性。在模擬器運行正確后,再將圖片解碼算法移植到本系統(tǒng)上運行,實踐證明,STM32的內(nèi)存足以支持圖片解碼算法正常執(zhí)行。實驗在VC模擬器中運行的效果圖如圖11所示。

 

 

6.結(jié)論

本文介紹了基于RT-Thread和STM32數(shù)碼相框的設(shè)計方案,通過設(shè)計相關(guān)硬件電路和軟件算法,實現(xiàn)了數(shù)碼相框對JPEG格式圖片文件的瀏覽功能。本系統(tǒng)設(shè)計的基于連續(xù)IDCT變換的JPEG解碼算法能夠正確穩(wěn)定完成JPEG格式圖像的解碼,解碼速度較快,恢復(fù)圖像的質(zhì)量良好。實際測試表明,本方案具有很強的實用性。

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

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復(fù)雜性成為開發(fā)者關(guān)注的焦點。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導(dǎo)致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關(guān)鍵環(huán)...

關(guān)鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內(nèi)部溫度傳感器因其低成本、高集成度特性,廣泛應(yīng)用于設(shè)備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準(zhǔn)算法、軟...

關(guān)鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅(qū)動下,AC-DC轉(zhuǎn)換器的數(shù)字控制技術(shù)正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構(gòu)的深刻變革。基于STM32微控制器的PFM(脈沖頻率調(diào)制)+PWM(脈沖寬度調(diào)制)混合調(diào)制策略,結(jié)合動態(tài)電壓調(diào)整(Dynam...

關(guān)鍵字: AC-DC STM32

當(dāng)前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進行了改進 ,設(shè)計出基于STM32單片機的全 自動家用澆花機器人。該設(shè)計主要由機械結(jié)構(gòu)和控制系統(tǒng)構(gòu)成 ,機械結(jié)構(gòu)通過麥克納姆輪底盤與噴灑裝置的結(jié)合實現(xiàn)機器...

關(guān)鍵字: STM32 麥克納姆輪 安全可靠 通過性強

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復(fù)雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務(wù)。在本文中,我們將帶您完成使...

關(guān)鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術(shù)的無線傳感網(wǎng)絡(luò)憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復(fù)雜電磁環(huán)境中實現(xiàn)高效休眠調(diào)度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡(luò)能效與可靠性的關(guān)鍵挑戰(zhàn)。本...

關(guān)鍵字: STM32 LoRa

在實時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應(yīng)用場景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

數(shù)字電源技術(shù)向高功率密度、高效率與高動態(tài)響應(yīng)方向加速演進,STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準(zhǔn)控制架構(gòu),成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關(guān)鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機控制場景的深度優(yōu)化,成為高精度、高可靠性驅(qū)動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機控制領(lǐng)域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補...

關(guān)鍵字: STM32 電機控制

無線充電技術(shù)加速滲透消費電子與汽車電子領(lǐng)域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設(shè)備能量補給的核心課題。傳統(tǒng)模擬控制方案存在響應(yīng)滯后、參數(shù)調(diào)整困難等問題,而基于STM32的數(shù)字PID控制結(jié)合FOD(Foreign O...

關(guān)鍵字: STM32 無線充電
關(guān)閉