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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TouchGFX實(shí)現(xiàn)觸摸功能的方法及原理

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2022-05-12 13:14 ? 次閱讀

1.引言

越來越多的智能設(shè)備會(huì)在 MCU 上實(shí)現(xiàn)圖形界面,而 TouchGFX 是專門用于 ST MCU上的圖形界面設(shè)計(jì)軟件,使圖形界面在 MCU 上能達(dá)到類似智能手機(jī)的顯示效果。TouchGFX 圖形引擎包括三部分:搜集、更新、渲染。其中在搜集階段,圖形引擎從外部環(huán)境收集事件,這些事件通常是觸摸和按鈕事件。TouchGFX 采樣并將事件傳遞到應(yīng)用程序,這樣原始觸摸動(dòng)作就被轉(zhuǎn)換為更具體的應(yīng)用程序的觸摸事件。例如,點(diǎn)擊(用戶在顯示屏上按下或松開手指)、拖動(dòng)(用戶觸摸顯示屏并在顯示屏上移動(dòng)手指)、手勢(用戶向一個(gè)方向快速移動(dòng)手指,然后松開)等功能,這些操作都會(huì)被圖形引擎識(shí)別并轉(zhuǎn)發(fā)給當(dāng)前活動(dòng)的 UI 元素。

本文主要介紹 TouchGFX 從顯示器的觸摸控制器讀取觸摸坐標(biāo),并將其傳遞給應(yīng)用程序的方法及原理,使開發(fā)者能夠很容易的在 TouchGFX 生成的代碼中添加觸摸功能。

2.TouchGFX 抽象層架構(gòu)

TouchGFX 引擎通過 實(shí)例化了的HAL子類來訪問 HAL。這些子類由 TouchGFX Generator生成,Generator 是創(chuàng)建抽象層的主要工具,可以生成反映 STM32CubeMX 配置的 HAL 部分,以及 CMSIS V1 或 V2 的 OSAL。通常 HAL 的架構(gòu)如下圖 1 所示。

TouchGFX 抽象層(Abstraction Layer,簡稱 AL)具有一套特殊的職責(zé), 職責(zé)要么在AL (HAL)的硬件部分實(shí)現(xiàn),要么在與 TouchGFX Engine 同步的 AL 部分實(shí)現(xiàn),典型的做法是通過 RTOS (OSAL)來實(shí)現(xiàn)。圖 2 總結(jié)了 TouchGFX AL 的主要職責(zé),其中有一項(xiàng)任務(wù)就是報(bào)告觸摸與物理按鈕事件,TouchGFX 將原始觸摸動(dòng)作轉(zhuǎn)換為具體的觸摸事件,并轉(zhuǎn)發(fā)給當(dāng)前活動(dòng)的 UI 元素。

3.觸摸功能實(shí)現(xiàn)步驟

要實(shí)現(xiàn)觸摸功能,首先需通過 STM32CubeMX 正確配置觸摸控制器和 MCU,并添加相應(yīng)驅(qū)動(dòng)代碼,保證 MCU 通過 I2C 或其他接口從觸摸控制器讀取信息,最后在TouchController 接口函數(shù)中添加相應(yīng)的實(shí)現(xiàn)代碼。

3.1. STM32CubeMX 配置

為了實(shí)現(xiàn)與觸摸控制器的通訊,大多數(shù)觸摸控制器都會(huì)連接至 I2C 總線,因此需要在STM32CubeMX 中對 I2C 外設(shè)進(jìn)行設(shè)置。許多 STM32 MCU 具有多個(gè) I2C 外設(shè),因此需選擇正確的 I2C 進(jìn)行配置,此外還需配置相關(guān) GPIO,圖 3 是 I2C 在 STM32CubeMX 中的配置界面,開發(fā)者需要根據(jù)觸摸控制器驅(qū)動(dòng)芯片進(jìn)行正確配置。

配置好 I2C 后,還需添加 I2C 的驅(qū)動(dòng)代碼,如果沒有用于觸摸控制器的驅(qū)動(dòng)代碼,則需要從頭開始編寫。STM32Cube 固件庫中提供了一些 I2C 通訊的驅(qū)動(dòng)程序,開發(fā)者可以從中參考相關(guān)代碼進(jìn)行修改使用。根據(jù)觸摸控制器的數(shù)據(jù)手冊,為確保通過讀取寄存器可以獲取觸摸坐標(biāo),首先要檢查的是觸摸控制器的 I2C 地址,然后讀取“設(shè)備 ID”寄存器,以進(jìn)行測試,然后測試是否可以從觸摸控制器接收到正確的 x 值和 y 值。

3.2. 在接口函數(shù)中添加實(shí)現(xiàn)代碼

在渲染新的一幀之前,TouchGFX 引擎從 TouchController 和 ButtonController 接口收集外部輸入。通過引擎將觸摸控制器的坐標(biāo)轉(zhuǎn)換為點(diǎn)擊、拖動(dòng)和手勢事件,并傳遞至應(yīng)用程序。一些觸摸控制器能夠報(bào)告多個(gè)觸摸點(diǎn),TouchGFX 不支持此功能,通常,只需選擇第一個(gè)觸摸點(diǎn)。

TouchGFX 引擎在收集輸入時(shí),引擎會(huì)調(diào)用 tc 對象的 sampleTouch()函數(shù)。TouchGFX Generator 會(huì)生成一個(gè) TouchController 類,并將接口函數(shù)定義為空。在STM32TouchController.hpp 中會(huì)聲明了 init()和 sampleTouch()兩個(gè)成員函數(shù),開發(fā)者需要做的就是在 STM32TouchController.cpp 源文件中添加相應(yīng)的實(shí)現(xiàn)代碼,在 init()函數(shù)中添加觸摸控制器的初始化代碼,在 sampleTouch()函數(shù)中添加相應(yīng)實(shí)現(xiàn)代碼,將讀取的觸摸坐標(biāo)值分配給 x 和 y,并返回是否檢測到觸摸。

其中有多種實(shí)現(xiàn) sampleTouch()函數(shù)的方法:一種是在 sampleTouch()中輪詢,另一種是基于中斷實(shí)現(xiàn)。在 sampleTouch() 中輪詢:通過發(fā)送請求并輪詢結(jié)果,從硬件觸摸控制器(通常為 I2C) 讀取觸摸狀態(tài)和觸摸坐標(biāo),默認(rèn)情況下,該函數(shù)每個(gè) tick 時(shí)間被調(diào)用一次, 如下圖 5 所示。

基于中斷:I2C 讀取命令由定時(shí)器定期啟動(dòng),或作為對觸摸硬件外部中斷的響應(yīng)而啟動(dòng)。圖 6 中 STM32TouchController.cpp 代碼顯示了 sampleTouch 如何在 RTOS 的系統(tǒng)中實(shí)現(xiàn)。當(dāng)觸摸事件產(chǎn)生時(shí),I2C 會(huì)產(chǎn)生中斷,并將數(shù)據(jù)通過消息隊(duì)列或全局變量提供給STM32TouchController。

小結(jié)

本文介紹了 TouchGFX 從顯示器的觸摸控制器讀取觸摸坐標(biāo),并將其傳遞給應(yīng)用程序的方法及原理。通過 STM32CubeMX 來初始化 I2C 外設(shè),添加相應(yīng)的驅(qū)動(dòng)代碼,然后在STM32TouchController.cpp 源文件中實(shí)現(xiàn) init()和 sampleTouch()函數(shù),開發(fā)者就能夠很容易的為 TouchGFX 工程添加觸摸功能。

原文標(biāo)題:工程師筆記|基于 TouchGFX 生成的代碼中添加觸摸功能的方法

文章出處:【微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • ST
    ST
    +關(guān)注

    關(guān)注

    32

    文章

    1134

    瀏覽量

    129008
  • 觸摸
    +關(guān)注

    關(guān)注

    7

    文章

    198

    瀏覽量

    64308
  • TouchGFX
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    13251

原文標(biāo)題:工程師筆記|基于 TouchGFX 生成的代碼中添加觸摸功能的方法

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何添加觸摸屏驅(qū)動(dòng)到TouchGFX中?

    使用STM32CubeMX移植TouchGFX 一文中介紹了如何用TouchGFX點(diǎn)亮屏幕,但是此時(shí)屏幕還沒有觸摸功能。下面將介紹如何添加觸摸
    的頭像 發(fā)表于 10-09 14:41 ?2149次閱讀

    TouchGFX開發(fā)(2)----觸摸屏幕組件點(diǎn)亮LED

    了解如何使用 TouchGFX 配置屏幕,添加觸摸按鈕,并通過按鈕控制板載 LED 的狀態(tài)。
    的頭像 發(fā)表于 11-09 15:25 ?1411次閱讀
    <b class='flag-5'>TouchGFX</b>開發(fā)(2)----<b class='flag-5'>觸摸</b>屏幕組件點(diǎn)亮LED

    將程序通過touchgfx designer下載到開發(fā)板,無法實(shí)現(xiàn)觸摸功能怎么處理?

    用NUCLEO-G071RB和X-NUCLEO-GFX01M1做觸摸顯示實(shí)驗(yàn),希望點(diǎn)擊按鈕能跳轉(zhuǎn)到相關(guān)界面,在touchgfx designer模擬仿真可以實(shí)現(xiàn),但是將程序通過touchgfx
    發(fā)表于 03-25 06:33

    TouchGFX中Callback模板實(shí)現(xiàn)原理

    interaction 中給按鍵添加響應(yīng);或者創(chuàng)建多個(gè)界面,在界面間進(jìn)行切換;這些功能由 designer 幫我們自動(dòng)生成代碼實(shí)現(xiàn)了,那與之對應(yīng)的功能響應(yīng)代碼具體是如何實(shí)現(xiàn)的呢?
    發(fā)表于 09-11 06:16

    LPC4353 TouchGFX

    LPC4353 TouchGFX觸摸屏代碼。
    發(fā)表于 03-17 08:18 ?15次下載

    如何在TouchGFX框架下實(shí)現(xiàn)校準(zhǔn)電阻觸摸屏?

    1. 摘要 本文檔主要介紹,如何在TouchGFX框架下,實(shí)現(xiàn)電阻式觸摸屏的校準(zhǔn)。分兩種方法介紹,三點(diǎn)校準(zhǔn)和四點(diǎn)校準(zhǔn)。以800*480電阻屏為例。 2. 準(zhǔn)備工作 可以正常運(yùn)行的
    的頭像 發(fā)表于 01-21 10:14 ?4596次閱讀
    如何在<b class='flag-5'>TouchGFX</b>框架下<b class='flag-5'>實(shí)現(xiàn)</b>校準(zhǔn)電阻<b class='flag-5'>觸摸</b>屏?

    TouchGFX中Callback模板實(shí)現(xiàn)原理

    TouchGFX是用C++編寫的,借助C++的模板特性,定義了一組Callback模板,基于此模板來實(shí)現(xiàn)響應(yīng)的功能
    發(fā)表于 08-04 18:51 ?15次下載
    <b class='flag-5'>TouchGFX</b>中Callback模板<b class='flag-5'>實(shí)現(xiàn)</b>原理

    touchGFX手環(huán)滾動(dòng)菜單的實(shí)現(xiàn)(三)

    touchGFX手環(huán)滾動(dòng)菜單的實(shí)現(xiàn)(三)文章目錄touchGFX手環(huán)滾動(dòng)菜單的實(shí)現(xiàn)(三)前言1.實(shí)現(xiàn)原理分析2.代碼
    發(fā)表于 12-27 19:01 ?9次下載
    <b class='flag-5'>touchGFX</b>手環(huán)滾動(dòng)菜單的<b class='flag-5'>實(shí)現(xiàn)</b>(三)

    基于 TouchGFX 生成的代碼中添加觸摸功能方法

    基于 TouchGFX 生成的代碼中添加觸摸功能方法
    的頭像 發(fā)表于 10-27 09:21 ?867次閱讀
    基于 <b class='flag-5'>TouchGFX</b> 生成的代碼中添加<b class='flag-5'>觸摸</b><b class='flag-5'>功能</b>的<b class='flag-5'>方法</b>

    使用TouchGFX二進(jìn)制翻譯(Binary Translation)功能實(shí)現(xiàn)動(dòng)態(tài)更新翻譯

    電子發(fā)燒友網(wǎng)站提供《使用TouchGFX二進(jìn)制翻譯(Binary Translation)功能實(shí)現(xiàn)動(dòng)態(tài)更新翻譯.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 16:48 ?1次下載
    使用<b class='flag-5'>TouchGFX</b>二進(jìn)制翻譯(Binary Translation)<b class='flag-5'>功能</b><b class='flag-5'>實(shí)現(xiàn)</b>動(dòng)態(tài)更新翻譯

    STM32GUI使用TouchGFX二進(jìn)制字體(Binary Font)功能實(shí)現(xiàn)字體動(dòng)態(tài)更新

    電子發(fā)燒友網(wǎng)站提供《STM32GUI使用TouchGFX二進(jìn)制字體(Binary Font)功能實(shí)現(xiàn)字體動(dòng)態(tài)更新.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 16:53 ?3次下載
    STM32GUI使用<b class='flag-5'>TouchGFX</b>二進(jìn)制字體(Binary Font)<b class='flag-5'>功能</b><b class='flag-5'>實(shí)現(xiàn)</b>字體動(dòng)態(tài)更新

    STM32GUI使用TouchGFX動(dòng)態(tài)圖片功能實(shí)現(xiàn)動(dòng)態(tài)更換表盤背景功能

    電子發(fā)燒友網(wǎng)站提供《STM32GUI使用TouchGFX動(dòng)態(tài)圖片功能實(shí)現(xiàn)動(dòng)態(tài)更換表盤背景功能.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 16:54 ?5次下載
    STM32GUI使用<b class='flag-5'>TouchGFX</b>動(dòng)態(tài)圖片<b class='flag-5'>功能</b><b class='flag-5'>實(shí)現(xiàn)</b>動(dòng)態(tài)更換表盤背景<b class='flag-5'>功能</b>

    實(shí)戰(zhàn)經(jīng)驗(yàn) | STM32GUI TouchGFX 屏幕切換功能簡介

    關(guān)鍵詞:GUI,TouchGFX,Transition 目錄預(yù)覽 1、引言 2、TouchGFX屏幕切換功能 3、小結(jié) 01 引言 TouchGFX 是專用于 STM32 的圖形界面設(shè)
    的頭像 發(fā)表于 11-09 10:05 ?5604次閱讀

    實(shí)戰(zhàn)經(jīng)驗(yàn) | TouchGFX 控件附加 ClickListener 功能方法介紹

    Designer 中的 Mixin 功能,從基礎(chǔ)示例 Button Example 出發(fā),為文本框控件添加 ClickListener (Mixin 功能中的一項(xiàng)),并對源代碼進(jìn)行簡單剖析。期望能幫助客戶更深入地理解 STM32 To
    的頭像 發(fā)表于 11-17 17:40 ?1374次閱讀

    單片機(jī)的GPIO如何實(shí)現(xiàn)觸摸按鍵的功能呢?

    單片機(jī)的GPIO如何實(shí)現(xiàn)觸摸按鍵的功能呢? 觸摸按鍵是一種使用觸摸電容技術(shù)實(shí)現(xiàn)的按鍵,它通過利用
    的頭像 發(fā)表于 12-07 11:43 ?4253次閱讀
    主站蜘蛛池模板: 中文字幕欧美一区| 大桥未久与黑人中出视频| 校园男男高h小黄文| 天天操人人射| 亚洲国产AV精品一区二区蜜芽| 亚洲av欧美在我| 一个人在线观看免费视频| 2022国产精品不卡a| 扒开老师大腿猛进AAA片邪恶| 俄罗斯videosbest8| 国产视频精品在线偷拍| 饥渴的护士自慰被发现| 久久综合久综合久久鬼色| 人人插人人射| 亚洲AV怡红院AV男人的天堂| 在线观看免费av网| 阿力gv资源| 国产真实女人一级毛片| 老太脱裤子让老头玩xxxxx| 欧美久久综合网| 污文啊好棒棒啊好了| 伊人久久大香线蕉综合电影网| 99九九精品国产高清自在线 | 人人草人人草| 亚洲 自拍 偷拍 另类综合图区| 婬香婬色天天视频| 草草久久久无码国产专区全集观看| 国产精品久久久久无码AV色戒 | 97超碰免费人妻中文| 大肥婆丰满大肥奶bbw肥| 国产中文字幕在线| 免费视频不卡| 偷窥美女3| 伊人久久电影网| 成人18视频在线| 精品国产国偷自产在线观看| 女人色极品影院| 亚洲精品高清中文字幕完整版| 99久久爱re热6在线播放| 国产午夜免费不卡精品理论片| 免费韩国伦理2017最新|