TouchGFX前面幾個(gè)教程都是在模擬器上跑都沒有下到開發(fā)板子上過那就不好玩了啊,那我接下來將如何移植到stm32上面運(yùn)行,我這里以非官方板為例。
我們使用的是STM32CubeMX軟件生成我的版本是5.2,使用STM32F746IGT6為核心的開發(fā)板為Open746I-C:http://www.waveshare.net/shop/Open746I-C.htm,使用7寸電容觸摸屏:http://www.waveshare.net/shop/7inch-Capacitive-Touch-LCD-F.htm 分辨率為1024×600。
先打開或者重新創(chuàng)建一個(gè)STM32CubeMX驅(qū)動(dòng)LCD的工程。
開啟一個(gè)TIM1為TouchGFX框架作為時(shí)基,這個(gè)開啟時(shí)鐘源來即可,下面的參數(shù)不需要設(shè)置,設(shè)置也沒用或者反作用。
開啟FMC為L(zhǎng)CD 提供顯存
開啟DM2D
開啟LCD 驅(qū)動(dòng)器,設(shè)置好像素點(diǎn)和參數(shù)。
設(shè)置層數(shù)
開啟LTDC和DM2D中斷,這個(gè)很重要
開啟FreeRTOS
開啟GRAPHICS,選擇TouchGFX ,檢查參數(shù)是否正確
設(shè)置時(shí)基源為TM2。
設(shè)置好時(shí)鐘。
在配置TouchGFX 前可以先去試一試LCD的硬件和軟件是否有問題,如果沒問題在進(jìn)行下一步。如果不使用STM32CubeMX生成也可以,只需要保證LCD配置和FreeRTOS可以正常工作也可以,在中間加入這些文件是一樣的。
生成代碼,在STM32CubeMX工作目錄下創(chuàng)建一個(gè)TouchGFX文件夾,將TouchGFX 工程放在進(jìn)去
在TouchGFX 文件夾中如下
然后打開keil5工程編譯,編譯會(huì)報(bào)錯(cuò),說函數(shù)沒有定義。
然后把TouchGFXgenerated和TouchGFXgui文件夾下所有.cpp加載到工程中。
再把對(duì)應(yīng)的頭文件文件夾設(shè)置好,我這里但是系統(tǒng)默認(rèn)設(shè)置好的,我只加了一個(gè)。
添加如下:
編譯結(jié)束有一些沒使用大圖片的內(nèi)存就夠了,使用了大圖片的內(nèi)存就不夠,哪怕圖片只是加載到你的工程沒有使用也不可以。
移除大圖片后發(fā)現(xiàn)還有兩個(gè)錯(cuò)誤,這兩個(gè)錯(cuò)誤,找了一些發(fā)現(xiàn)有定義但是沒有在頭文件里面聲明,導(dǎo)致編譯器找不到,我們?cè)趍ain.h中聲明這兩個(gè)變量。
好編譯過了下載板子試一試
ok,完美,哦不,,,觸摸沒有效果呀。
那我們加一個(gè)觸摸,我們提前準(zhǔn)備一個(gè)觸摸程序,準(zhǔn)備直接移植,我使用的是GT911觸摸芯片,觸摸屏支持5點(diǎn)觸控,但是我們只使用一個(gè)點(diǎn)。
在STM32F7TouchController.cpp中有
void STM32F7TouchController::init() //觸摸屏初始化函數(shù)
bool STM32F7TouchController::sampleTouch(int32_t& x, int32_t& y) //觸摸屏讀取觸摸點(diǎn)函數(shù)
兩個(gè)函數(shù),我們加入我們的程序進(jìn)去。
然后編譯下載,使用效果。
注意:不要讓然觸摸程序一直卡死等待,不然一樣沒有效果,可以適當(dāng)添加串口打印數(shù)據(jù),但是不要使用printf這個(gè)函數(shù)。不管你是否重定義了,都不要使用。如果想使用TouchGFX自帶的一些GUI,然后下載程序卻內(nèi)存不夠那就請(qǐng)使用QSPI擴(kuò)展內(nèi)存來實(shí)現(xiàn)。
如果你的是官方板選擇對(duì)應(yīng)的開發(fā)板下載好驅(qū)動(dòng),可以直接下載。
上一篇:5.TouchGFX界面應(yīng)用之多屏幕
下一篇:3.TouchGFX界面應(yīng)用之按鈕與響應(yīng)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 下載有禮:4種方法幫助您高效進(jìn)行元器件表征,加速元器件檢測(cè)
- DigiKey 應(yīng)用探索站 | 電源解決方案和技術(shù)第三趴
- 有獎(jiǎng)直播|瑞薩電子 RA 系列產(chǎn)品開發(fā)工具之 FSP4.0.0 新特性介紹
- BeagleBone Black 開發(fā)板 DIY 創(chuàng)意設(shè)計(jì)大賽
- DigiKey應(yīng)用探索站重磅上線!潮流應(yīng)用,硬核技術(shù)探秘,N多干貨,一站get!
- 只為關(guān)心你——Maxim 智能可穿戴 IC 解決方案 白皮書免費(fèi)下載
- 萬用表,紅外測(cè)溫儀等你來拆!—— EEWorld拆你來玩拆解(第二期)
- e絡(luò)盟e選第三期:熱門產(chǎn)品5折起,價(jià)格鎖定更安心
- 攻克痛點(diǎn)贏好禮|泰克全系列示波器為您排憂解難!
- 解析仿生機(jī)器人為了發(fā)展方向及趨勢(shì)
- 解析環(huán)保機(jī)器人未來如何發(fā)展
- 怎樣測(cè)試服務(wù)機(jī)器人的硬件系統(tǒng)和軟件通信接口?
- 制約我國機(jī)器人產(chǎn)業(yè)高端突破的瓶頸是什么?
- 中國工業(yè)機(jī)器人產(chǎn)業(yè)發(fā)展背景和現(xiàn)狀分析
- “視覺”安防哪家強(qiáng)?看“大佬”“萌新”如何布局(上)
- 超越Face ID 新一代人臉識(shí)別技術(shù)即將問世
- 2019年受用戶青睞的汽車傳感器新技術(shù)
- 新型傳感器可快速識(shí)別中風(fēng)患者 為中風(fēng)治療贏得時(shí)間
- 內(nèi)蒙古首批智能導(dǎo)診機(jī)器人上崗 開啟智慧醫(yī)療新模式