女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

將framebuffer保存為圖片來檢查內容正確性

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2022-04-25 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、前言

客戶在做 GUI 項目開發時,會碰到許多顯示相關的問題。

屏幕花屏是比較嚴重的問題,如果產品出現花屏,會嚴重影響使用體驗。正常的 UI 顯示,包括畫圖和將幀緩沖傳輸到屏幕兩個過程。如果畫圖過程出錯,那幀緩沖的內容就不對了,傳輸到屏幕后顯示也不可能正確。如果畫圖過程正確,而傳輸過程出錯,雖然幀緩沖的內容是對的,而屏幕接收到的數據出錯了,那屏幕顯示的內容自然也是錯誤的。因此在定位顯示錯亂、花屏等問題時,需要先判斷是畫圖出錯還是傳輸過程出錯。

本文會介紹一種方法,將幀緩沖內容導出并保存為圖片,來判斷幀緩沖內容是否正確。由于幀緩沖的內容為全部像素的 RGB 數據,在導出后需要借助其它工具將 RGB 數據轉換為圖片,方便在 PC 上直接查看。

這里可以使用 pythonpillow 包,將 RGB 轉換為JPG 圖片。而讀取幀緩沖的過程可以借助 python 的 pyswd 包來實現。

2、環境安裝

本機環境:Windows10 64bit 安裝 python 3.9.0 (測試過 3.9.6 正常),檢查系統環境變量,將 python 添加到 Path中。

下載:https://www.python.org/downloads/

ec3f427c-c3d1-11ec-bce3-dac502259ad0.png

2.1. 安裝 libusb

下載:https://github.com/libusb/libusb/releases

解壓 libusb-1.0.24.7z,將 VS2019/MS64/dll/libusb-1.0.dll 拷貝到 python 安裝目錄,與 python.exe 相同目錄

2.2. 安裝 pyusb

下載:https://pypi.org/project/pyusb/#files

打開 powershell,輸入 pip install pyusb-1.2.1-py3-none-any.whl

2.3. 安裝 Pillow

下載:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pil

打開 powershell,輸入 pip install Pillow-8.3.1-cp39-cp39-win_amd64.whl

2.4. 安裝 pyswd

下載:https://github.com/cortexm/pyswd/releases/tag/v1.0.0

解壓 pyswd-1.0.0.zip,打開 powershell,進入 pyswd-1.0.0 目錄,輸入 pythonsetup.py install

3. 將幀緩沖保存為圖片

3.1. 讀取幀緩沖

通過 pyswd,可以創建 stlink 對象連接到目標板,用read_mem 函數來讀取目標板內存。

3.2. 保存圖片

從 Pillow 包導入 Image 類,創建圖片對象,將 pyswd 讀取的 framebuffer 數據填充到 image 對象中并保存實現代碼如下,保存為 pyswd_rgb2jpg.py 文件。

ec540446-c3d1-11ec-bce3-dac502259ad0.png

4、測試及小結

在 L4R9-DK 板上進行了測試

(1) 無 GFXMMU 時,傳給腳本的參數,寬和高為實際 LCD 的寬和高將 GUI 固件燒錄到開發板后,屏幕正常顯示。在工程 map 文件中,找到 framebuffer 地址。打開 powershell,執行 pyswd_rgb2jpg.py:

ec6040f8-c3d1-11ec-bce3-dac502259ad0.png

(2)開啟 GFXMMU 時,framebuffer 對應為虛擬地址,傳給腳本的參數中,圖像的寬度要用GFXMMU 像素寬度

ec7b2332-c3d1-11ec-bce3-dac502259ad0.png

在完成環境安裝后,通過此腳本可方便查看 framebuffer 內容。如果出現屏幕花屏的問題,可導出 framebuffer 圖片查看。如果畫圖過程出錯,則導出的圖片顯示也是錯誤的。反之,如果畫圖過程正常,則 framebuffer 內容正常,導出的圖片也是正常的,這樣就需要查一下傳輸過程導致的顯示問題。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7256

    瀏覽量

    91859
  • 圖片
    +關注

    關注

    0

    文章

    203

    瀏覽量

    16248
  • Framebuffer
    +關注

    關注

    0

    文章

    8

    瀏覽量

    8234

原文標題:工程師筆記|將 framebuffer 保存為圖片來檢查內容正確性

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【HarmonyOS 5】鴻蒙應用實現發票掃描、文檔掃描輸出PDF圖片或者表格的功能

    包括 :掃描合同、票據、會議記錄并保存為 PDF 分享。拍攝課堂 PPT、書籍章節生成圖片存檔。快速識別表格數據,減少手動錄入成本。 在Harmon
    的頭像 發表于 07-11 18:16 ?275次閱讀
    【HarmonyOS 5】鴻蒙應用實現發票掃描、文檔掃描輸出PDF<b class='flag-5'>圖片</b>或者表格的功能

    HarmonyOS實戰:一招搞定保存圖片到相冊

    保存圖片功能幾乎是每個應用程序必備的功能之一,當用戶遇到喜歡的圖片時可以保存到手機相冊。那么在鴻蒙中保存
    的頭像 發表于 06-24 17:04 ?176次閱讀

    泰克示波器波形數據保存為CSV格式的完整指南

    在電子工程與科研實驗中,示波器作為信號分析的核心工具,其波形數據的存儲與后續處理至關重要。泰克示波器憑借其卓越的性能與豐富的功能,為用戶提供了多種波形保存方式,其中CSV格式因兼容強、數據開放度高
    的頭像 發表于 06-07 15:31 ?307次閱讀
    泰克示波器波形數據<b class='flag-5'>保存為</b>CSV格式的完整指南

    求大佬解答,怎么保存為帶表頭的電子表格

    求大佬解答,怎么保存為帶表頭的電子表格
    發表于 06-04 14:14

    如何正確使用和維護水下燈具氣密檢測儀

    水下燈具氣密檢測儀對于保障水下燈具的質量和安全至關重要,以下為你詳細介紹其正確的使用和維護方法:(一)正確使用方法使用前準備檢查外觀:仔
    的頭像 發表于 05-26 11:47 ?145次閱讀
    如何<b class='flag-5'>正確</b>使用和維護水下燈具氣密<b class='flag-5'>性</b>檢測儀

    DAC0832的典型接法幾點正確性的疑問求解

    DAC0832的典型接法幾點正確性的懷疑: 1.Iout2直接接地。電路輸出端子直接接地違背常理,那樣會燒壞片子。 2.LM336就這樣簡單的接下可以產生2.5v參考,不現實。需要接電源和限流
    發表于 02-05 09:21

    根據ADS1292R Data sheet組了一個前端電路,請問要如何測試電路的正確性?

    我根據ADS1292R Data sheet 自己組了一個前端電路,請問要如何測試電路的正確性?
    發表于 12-16 06:27

    ADS1278EVM-PDK連續采集方式保存數據時,能否保存為單個文件?

    ADS1278EVM-PDK請問連續采集方式保存數據時,Ready按后只能保存一系列文件(是不是不斷刷新只保存最后一次數據),不能保存單個文件。能否
    發表于 12-02 07:19

    ADCPROADS1278EVM-PDK用ADCPro在連續采集模式下能否保存為1個文件?

    ADCPROADS1278EVM-PDK用ADCPro在連續采集模式下能否保存為1個文件。現在不點亮Ready按鈕就只保存最后刷新的數據,如果點亮Ready按鈕就保存一系列文件比如以下所示,同樣大小系列文件。請問在ADCPr
    發表于 12-02 06:26

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-LCD顯示圖片編程示例之介紹framebuffer

    Framebuffer 字面意思就是幀緩存的意思,即顯存,里面保存著一幀圖像。事實上,對于嵌入式系統而言。沒有真正意義上的顯存,Framebuffer 是通過內存模擬出來的。一、LCD
    發表于 11-21 09:00

    飛凌嵌入式ElfBoard ELF 1板卡-LCD顯示圖片編程示例之介紹framebuffer

    Framebuffer 字面意思就是幀緩存的意思,即顯存,里面保存著一幀圖像。事實上,對于嵌入式系統而言。沒有真正意義上的顯存,Framebuffer 是通過內存模擬出來的。 一、LCD
    發表于 11-20 08:50

    ADS5282如何通過其他方式驗證寄存器寫入的正確性

    word. 測試結果: (1)差分數據對N端無變化 (2)差分P端輸出300多mv電壓,差分N端輸出100多mv電壓 另外,ADS5282是只寫芯片,如何通過其他方式驗證寄存器寫入的正確性
    發表于 11-18 08:33

    如何評估AIGC內容的質量和效果

    : 準確 : 事實核查 :確保AIGC生成的內容與已知的事實和數據相符。 引用來源 :檢查內容是否引用了可靠的來源,并且這些引用是否正確
    的頭像 發表于 10-25 16:02 ?2982次閱讀

    電腦如何直接使用rs232串口控制PGA460?如何檢測回復的數據的正確性

    電腦直接使用rs232串口控制PGA460,該怎么連接?怎樣檢測回復的數據的正確性
    發表于 10-11 06:12

    使用CY521 EVAL配置CYPD2122,如何文件保存為HEX格式?

    我正在使用 CY521 EVAL 配置 CYPD2122。 一切運行正常,我現在希望文件保存為 HEX 格式,以便通過 MiniProg4 進行編程。但是,當我進入\"保存到固件文件
    發表于 08-12 08:19