1. 程式人生 > >圍觀迅為IMX6開發板QT下LVDS和HDMI如何雙屏異顯的

圍觀迅為IMX6開發板QT下LVDS和HDMI如何雙屏異顯的

graphics item 環境 width 開始 blog 雙屏 dmi ats

首先將迅為-IMX6開發板分別連接9.7寸屏和HDMI顯示器

然後使用MfgTool工具燒寫QT系統

然後撥碼開關設置成從emmc啟動

在uboot命令行下設置開發板為9.7寸屏顯示(這樣也會同時設置HDMI)

設置完,保存配置,如下圖:
技術分享圖片


然後設置啟動QT系統,並保存設置,如下圖:
技術分享圖片



然後開發板重新啟動,可以看到默認9.7寸屏顯示qt的觸摸校準程序了,點擊屏幕校準,最後會在9.7寸屏上運行QT的demo程序。
HDMI顯示通道默認是關閉的,在串口命令行下輸入命令“echo 0 > /sys/class/graphics/fb2/blank”,使能hdmi通道,如下圖:
技術分享圖片

現在hdmi顯示屏上顯示黑屏,我們可以給hdmi對應的frambuffer寫入一些隨機數據,輸入下面的命令“cat /dev/urandom > /dev/fb2”,如下圖:
技術分享圖片




輸入完這條命令,我們可以看到hdmi顯示器開始顯示一些噪點(無規則的圖案)了,說明現在hdmi這路frambuffer顯示是可以了,同時9.7寸顯示的是qt的demo程序。
我們可以在hdmi上也運行一個qt的demo程序,這樣兩個qt的程序分別在兩個顯示器下單獨顯示,輸入下面的命令,在hdmi下運行qt的demo程序,如下:
export QTDIR=/opt/qt-4.7.1/
export LD_LIBRARY_PATH=$QTDIR/plugins/qtopialmigrate/:$QTDIR/qt_plugins/imageformats/:$QTDIR/lib:/root/tslib/build/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/root/tslib/build/bin
export QWS_DISPLAY=:2:/dev/fb2
export HOME=/root
cd /opt/qt-4.7.1/demos/embedded/fluidlauncher
./fluidlauncher -qws
運行完上面的命令,可以看到hdmi顯示器也運行qt的demo程序了。
通過上面的這些步驟,我們運行了兩個qt的demo程序,分別在9.7和hdmi顯示器上分別顯示。qt程序運行前需要設置一組對應的環境變量,在上面的命令裏有一個命令是“export QWS_DISPLAY=:2:/dev/fb2”,這個命令是設置qt的界面輸出frambuffer為/dev/fb2(即hdmi顯示屏對應的frambuffer)。9.7寸屏對應的設置為“export QWS_DISPLAY=:0:/dev/fb0”。
通過上面的講解,我們可以清楚了qt下lvds和hdmi分別顯示不同界面的(也可以成為雙屏異顯)操作步驟了。其實總結一句話就是給對應的程序設置對應的frambuffer。
搞清楚了qt下frambuffer的設置方法,我們可以基於這個原理來設計雙屏同顯(即把顯示內容同時對應的兩個frambuffer上)。

迅為-IMX6開發板:

技術分享圖片

詳情了解:http://topeetboard.com/ 更多了解:https://arm-board.taobao.com/

圍觀迅為IMX6開發板QT下LVDS和HDMI如何雙屏異顯的