目標功能:能夠更新指定大小的圖片到屏幕上的指定位置。 目前迪文T5UID1(D3)的屏幕是支持區域圖片(.JPEG格式)通過串口下載進行更新到指定的坐標位置,通過給系統變量接口0xA6(JPEG_Download)下發指令。   但目前T5UID2的產品不支持此功能。(D1、D3產品都有3頁顯存,有個專門的背景頁所以能夠支持此功能,而D2只有2頁顯存。) 
  為實現目標功能首先將目標素材(圖片文件壓縮成較小的.jpeg格式)用重命名的方法改成.bin格式文件(用UE軟件打開可以預覽圖片的所有數據)。 
在將圖片(.bin格式)文件通過sd卡下載到屏幕之前,要確保目標文件不會與其他字庫,圖標庫文件產生沖突(實例中將目標文件重命名為“100_系統休眠.bin”)。 目標文件下載完成后,通過對0xAA(NandFlash_RW_CMD)系統變量接口下發指令,將目標文件讀到Flash存儲器中。 測試用例“100_系統休眠”為100x100,2.25KB大小的圖片文件。 
指令如下: | | | | | | | | | | | | | | | - 讀取到數據變量從8000開始的空間
- 讀取的數據長度
- 未定義,寫0000
|
通過0x83指令讀對應的數據變量地址,可以查看目標文件是否已經讀到對應的變量地址中。 發出指令之后,串口收到數據返回。 
讀到串口返回的數據,說明目標文件(100_系統休眠.bin)已經成功地更新到目標數據變量空間,通過對JPEG_Download(0x6A)系統變量接口下發指令,將更新的目標文件顯示在當前頁面上。 最后效果如下圖所示: 
補充: - 拓展來講,NandFlash不僅僅只支持圖片的更新,同樣也可以用來更新字庫,音樂,圖標庫等(以32Kbyes 塊為基準)。
- 目前T5UID2的屏沒有開放和D1一樣的 JPEG的0x01下載模式,所以目前針對T5UID2通過串口更新指定大小,位置的圖片(圖標)到屏幕上顯示的方法只能用0x02模式將圖片存儲在Flash再通基本圖形顯示空間,通過指令剪切對應大小的圖片
到當前頁面。 
其具體步驟概括如下: - 將目標顯示的圖片文件整合到和工程文件相同大小的圖片上(例:目標圖片大小為100X100,工程圖片文件大小為800x600)。
- 在工程文件里添加一個基本圖形顯示空間。并更新到屏幕中。
- 將圖片文件更新到屏內,將圖片文件改為.Bin格式。將圖片的數據分成每次發送250字節,用SSCOM32串口發指令,模擬數據下發。
- 通過A6指令的02模式將圖片更新到Flash。
- 再通過基本圖形顯示控件的0x0006指令,將目標圖片給剪切粘貼到目標位置。

- 如過不要求必須通過串口更新,解決方法可以更為簡單:
- 將小于64KB的圖片改成.bin格式,然后將圖片數據復制到22文件較大的數據變量地址,通過sd卡更新到屏內。再通過基本圖形的剪切與復制指令實現目標功能。
- 將所有的目標顯示效果制作成圖標庫更新到屏內,同樣是用到基本圖形顯示控件,0x0007指令。

- 預覽的圖片都保存到FLASH,再用基本圖形剪切顯示的話,會有預覽寫FLASH次數問題,只有6萬次壽命。
- 圖片文件傳輸速率問題,當波特率設置為115200時,傳輸20KB大小的圖片文件,僅傳輸速度就要2s左右,還需加上屏幕解碼顯示的時間。
完整的Word格式文檔51黑下載地址:
JEPG圖片下載方法 .docx
(1.36 MB, 下載次數: 46)
2019-4-1 20:35 上傳
點擊文件名下載附件
|