色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    7134

    瀏覽量

    89410
  • 圖片
    +關注

    關注

    0

    文章

    203

    瀏覽量

    15959
  • Framebuffer
    +關注

    關注

    0

    文章

    8

    瀏覽量

    8081

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

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

收藏 人收藏

    評論

    相關推薦

    根據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個文件?,F在不點亮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

    如何評估 ChatGPT 輸出內容的準確

    內容準確的方法和步驟: 數據質量和多樣 : 確保訓練數據覆蓋了廣泛的主題和領域,以便模型能夠理解和生成各種類型的內容。 檢查數據是否包含
    的頭像 發表于 10-25 17:48 ?652次閱讀

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

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

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

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

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

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

    在SimpleCentral_processGATTDiscEvent里面,根據UUID發現charHandle,這個charHandle在UUID改為128bit后是否還是保存為8字節?

    SimpleCentral_processGATTDiscEvent里面,根據UUID發現charHandle,這個charHandle在UUID改為128bit后是否還是保存為8字節?還是要保存16字節?若還是保存8字節應該
    發表于 05-30 07:55

    STM32MP135如何使用opencv-python或v4l2-ctl打開攝像頭,并保存為圖片?

    行。 但是官方的例程中,直接用v4l推送到media上,直接顯示的又是可以的。 請問我該如何使用opencv-python 或v4l2-ctl打開攝像頭,并保存為圖片
    發表于 05-30 06:16

    labview屏幕找圖,返回找到的位置XY坐標

    CheckSUM值。 圖中的截圖按鈕點擊后可截取屏幕上你需要的任意位置,盡量只選擇感興趣的區域,保存為.bmp格式的圖片到路徑。選擇路徑后點擊找圖按鈕即可實現找圖。也有屏幕找色,OCR,窗口句柄等子vi,感興趣的私聊。
    發表于 05-11 08:59

    RTT使用unicode編碼,編譯不通過是為什么?

    1、我們為了設備兼容俄語,就需要使用到unicode編碼,字符串保存文件保存為unicode編碼,但是編譯之后出現一大堆錯誤。 2、編譯器使用的是rtthread_studio. 3、我們的編譯器不支持unicode編碼嗎?
    發表于 03-27 08:01

    怎么編寫Framebuffer驅動程序

    Framebuffer 驅動程序框架 分為上下兩層: fbmem.c:承上啟下 實現、注冊 file_operations 結構體 把 APP 的調用向下轉發到具體的硬件驅動程序
    的頭像 發表于 03-22 09:13 ?603次閱讀
    怎么編寫<b class='flag-5'>Framebuffer</b>驅動程序
    主站蜘蛛池模板: 久久视热频这里只精品 | www.久久久 | 动漫美女被爆挤奶歪歪漫画 | 99热在线视频这里只精品 | 偷拍亚洲制服另类无码专区 | caoporen超碰在线视频 | 亚洲AV无码专区国产乱码网站 | xxnx日本| 国产精品久久久久一区二区三区 | 精品久久久久久久99热 | 精品无码久久久久久国产百度 | 国产精品久久久久久亚洲毛片 | 伊人久久综合谁合综合久久 | 2021国产精品久久久久精品免费网 | 亚洲人日本人jlzzy | 夫外出被公侵犯日本电影 | 精品国产精品人妻久久无码五月天 | FREECHINESE东北群交 | 扒开老师大腿猛进AAA片邪恶 | 玩高中女同桌肉色短丝袜脚文 | 国产呦精品一区二区三区网站 | 国产免费午夜 | 蜜臀AV人妻久久无码精品麻豆 | 仓井空torrent| 淫品色影院 | 午夜电影三级还珠格格 | 小伙无套内射老女人 | 超碰国产人人做人人爽 | 精品手机在线视频 | 国产一及毛片 | 久久国产影院 | 亚洲欧洲精品成人久久曰影片 | 国产精品亚洲精品久久国语 | 狠狠色色综合站 | 闺蜜扒开我尿口使劲揉 | 野花日本完整版在线观看免费高清 | 在线观看免费av网站 | 一边吃奶一边啪啪真舒服 | 亚洲色图在线视频 | 偷偷鲁青春草原视频 | 暖暖日本手机免费完整版在线观看 |