基于RT-Thread和STM32的數碼相框設計方案
4.3.3色彩模式轉換
由于液晶支持的是RGB格式的圖像數據,需要把執行完解碼過(guò)程得到的YCrCb格式的數據轉換成RGB模式,將256級的YCrCb色彩模型轉換成RGB色彩模型的計算公式如式(1)。
因為R、G、B的取值范圍為[0,255],需要對運算結果進(jìn)行閾值保護,對超過(guò)255的數值,限定在255,小于0的數值,限定在0.經(jīng)過(guò)運算最終可以得到RGB模式的圖像數據,完成解碼過(guò)程。
4.4圖片瀏覽模式
本系統的圖片瀏覽模式有觸摸手動(dòng)瀏覽和定時(shí)自動(dòng)瀏覽兩種模式可供選擇。在觸摸手動(dòng)瀏覽模式下,有“下一張”,“上一張”,“退出”控件。通過(guò)操作觸摸屏上下翻頁(yè)的控件,實(shí)現瀏覽圖片的功能。在瀏覽完最后一張時(shí),系統會(huì )自動(dòng)跳轉到第一張。在定時(shí)自動(dòng)瀏覽模式下,界面僅有退出控件,每隔3秒,自動(dòng)進(jìn)行下一張圖片的瀏覽,并循環(huán)顯示。
5.系統調試
5.1硬件調試
通過(guò)硬件電路設計,檢查元器件之間的電氣連接,下載基本調試程序,檢測系統板運行狀況,在對USB枚舉測試時(shí),通過(guò)USB數據線(xiàn)連接至電腦,可以對flash存儲設備進(jìn)行讀寫(xiě)操作。
5.2軟件調試
5.2.1 LIB庫的編譯
本系統的軟件開(kāi)發(fā)環(huán)境是MDK,在程序基本模塊的底層驅動(dòng)編寫(xiě)完善以后,將STM32的底層外設驅動(dòng)庫和μC/GUI庫函數編譯封裝成LIB庫,在后期程序開(kāi)發(fā)時(shí),大大提高了程序的編譯效率,縮短了軟件開(kāi)發(fā)周期。
5.2.2 Finsh Shell調試組件本系統采用RT-Thread嵌入式操作系統,通過(guò)其自帶的用戶(hù)命令行組件Finsh Shell查看系統運行狀況。通過(guò)超級終端輸入相應的命令來(lái)使用Finsh Shell.Finsh Shell在RT-Thread中被設計成一個(gè)獨立的線(xiàn)程,通過(guò)串口設備輸入相應的命令,系統對用戶(hù)命令進(jìn)行解析執行,可用來(lái)獲取系統運行時(shí)信息,對任意寄存器和內存地址進(jìn)行讀寫(xiě)操作,還能夠直接在shell中調用系統函數,訪(fǎng)問(wèn)系統變量。FinshShell組件的使用,在很大程度上提高了調試程序的效率。
5.2.3圖片解碼調試
由于圖片解碼算法占用內存較大,考慮到圖片解碼算法在STM32中可能會(huì )因為內存分配不足而無(wú)法正常運行,在驗證圖片解碼函數的正確性時(shí),先在PC機的VC模擬器上運行,用以給圖片解碼算法提供一個(gè)理想的運行平臺。在模擬器中,用數組存儲圖片二進(jìn)制源碼,用解碼算法對圖片的數組數據進(jìn)行解碼,驗證解碼算法的正確性。在模擬器運行正確后,再將圖片解碼算法移植到本系統上運行,實(shí)踐證明,STM32的內存足以支持圖片解碼算法正常執行。實(shí)驗在VC模擬器中運行的效果圖如圖11所示。
6.結論
本文介紹了基于RT-Thread和STM32的數碼相框的設計方案,通過(guò)設計相關(guān)硬件電路和軟件算法,實(shí)現了數碼相框對JPEG格式圖片文件的瀏覽功能。本系統設計的基于連續IDCT變換的JPEG解碼算法能夠正確穩定完成JPEG格式圖像的解碼,解碼速度較快,恢復圖像的質(zhì)量良好。實(shí)際測試表明,本方案具有很強的實(shí)用性。
電路相關(guān)文章:電路分析基礎
手機電池相關(guān)文章:手機電池修復
評論