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

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

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

3天內不再提示

STM32 TouchGFX部分控件功能測試

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2022-08-22 11:12 ? 次閱讀

ST公司推出的用于圖形界面開發的 TouchGFX Designer已經升級到4.20了。這兩天我利用手頭的STM32F429Discovery板對Touchgfx提供的部分控件功能做了些測試,把這個過程中遇到的一些問題做些整理,以備忘并順便分享。

我這次主要測試了TextArea,界面按鍵響應、動態圖形【dynamicgraph】、模擬時鐘Analog Clock】、進度條顯示以及軟件上添加虛擬函數的實現。涉及的界面有下面幾個:【僅為測試,界面美丑略過】

ab1931b0-21c6-11ed-ba43-dac502259ad0.png

ab44a8ea-21c6-11ed-ba43-dac502259ad0.png

ab67a76e-21c6-11ed-ba43-dac502259ad0.png

ab8642c8-21c6-11ed-ba43-dac502259ad0.png

第一個要注意的地方。

我使用的IDE是STM32CubeIDE。當我在相應hpp頭文件里添加虛擬函數聲明時,需要在IDE環境里專門對該頭文件做個save操作,不然在cpp函數里寫好相應函數后編譯時總提示沒有做函數聲明。 舉個例子說下,比方我要在Screen1View.cpp寫一個IncDuty()函數。

abad5de0-21c6-11ed-ba43-dac502259ad0.png

我們需在其對應的頭文件里加上虛擬函數的聲明。在頭文件里添加了該虛擬函數聲明后,需要手動對該文件做個SAVE操作【File菜單下選擇Save】,否則老是編譯出錯,提示函數無聲明,即像下面提示:

abd27080-21c6-11ed-ba43-dac502259ad0.png

但別的cpp文件修改后倒不用單獨做save操作,直接編譯即可。這個地方因為要操作的文件較多,我多次忘記,直到編譯提醒才知道。【不知該問題是否跟IDE有關?我沒測試別的IDE。反正提醒下吧。】

第2個要注意的地方,我這里通過TouchGFXdesigner的文本區域控件【textarea】顯示STM32的某通道ADC轉換值,用到了浮點。

abf32d84-21c6-11ed-ba43-dac502259ad0.png

剛開始我用的是這個函數:

Unicode::snprintf(textArea1Buffer,TEXTAREA1_SIZE, "%f",AdcResult);

結果總是出不來,但當我將AdcResult改為整型變量,通過%d可以顯示正確結果。先懷疑過IDE方面浮點功能相關配置,經檢查沒問題。后來到TouchGFX在線服務站點搜索snprintf才有新的發現,如下圖所示:

ac121ca8-21c6-11ed-ba43-dac502259ad0.png

看來我的函數用錯了,使用浮點有另外一個輸出函數,即:

Unicode::snprintfFloat(textArea1Buffer, TEXTAREA1_SIZE,"%2.4f", AdcResult);

第3個要注意的地方,也是跟上面textarea輸出顯示有關的問題。

ac2d8218-21c6-11ed-ba43-dac502259ad0.png

在它的屬性那里有個Auto-size的選項,勾選與不勾選的實現代碼是不一樣的。一般為了簡單點,可以不做勾選,自己手動拉個合適大小的框來顯示字符及數據。比方還是以上面顯示ADC輸出電壓值為例,其實現代碼如下:

void Screen2View:: DispAdcValue()

{

Unicode::snprintfFloat(textArea1Buffer,TEXTAREA1_SIZE,"%2.4f", AdcResult);

//textArea1.resizeToCurrentText();

//memset(textArea1Buffer,'?',strlen(....));

textArea1.invalidate();

}

如果說你希望勾選,你的代碼就將上面的屏蔽語句加上即可,有興趣可以自行試試。

再就是那個動態圖形顯示那個地方,顯示的點數及修改樣點值的頻率都是可以調整的。我這里是讓它動態顯示一路PWM輸出的方波,為了實現它,我在這個地方做了些來回調試才實現比較好的效果。

另外,我在組織模擬時鐘代碼時遇到的一個小問題。我用到Model::Tick里的modelListener功能。

有個地方本來應該是view.UpdateClock(hours,minutes,seconds);我看庫里面絕大部分單詞的首字母都是大寫的,我就慣性地將view的首字母寫成大寫V了,編譯沒有直接提示出錯,但就是結果出不來。這里各種API函數很多,初次使用者對他們都較陌生,這種比較隱蔽的問題難免會碰上。

我順便把測試中用到的幾個跟GUI這邊有關的函數實現代碼也貼過來,供有需要的人參考。

modelListener->UpdateClock(sTime.Hours,sTime.Minutes,sTime.Seconds);

analogClock1.setTime24Hour(sTime1.Hours,sTime1.Minutes,sTime1.Seconds);

void Screen2View:: DispAdcValue()//基于textarea控件固定寬度顯示數據

{

//Unicode::snprintf(textArea1Buffer, TEXTAREA1_SIZE,"%d?u?s?", AdcResult);

Unicode::snprintfFloat(textArea1Buffer,TEXTAREA1_SIZE, "%2.4f", AdcResult);

//textArea1.resizeToCurrentText();

//memset(textArea1Buffer,'?',…..);

textArea1.invalidate();

}

void Screen3View::UpdateCnt() //For progress Bar

{

if (UpdateCNT> 2000) {UpdateCNT = 0;}

//UpdateCNT comesfrom Timer Interrupt

textProgress1.setValue(UpdateCNT);

circleProgress1.setValue(UpdateCNT);

imageProgress1.setValue(UpdateCNT);

}

voidScreen1View::IncDuty() //For TIM3-CH1

{

CCRValue+=100;

if (CCRValue > 50000)

{

TIM3->CCR1 = 50000;

}

else

{

TIM3->CCR1 = CCRValue;

}

}

voidScreen1View::DecDuty()//For TIM3-CH1

{

CCRValue-=100;

if (CCRValue <0000)

{

CCRValue = 0 ;

TIM3->CCR1 = 000;

}

else

{

TIM3->CCR1 = CCRValue;

}

}

voidScreen1View:: ModifyGraph() //forDynamic grahph

{

uint16_t temp;

temp = GPIOB->IDR & 0x0010;

if (temp==0)

{

dynamicGraph1.addDataPoint(0);

// dynamicGraph1.invalidate();

}

else

{

dynamicGraph1.addDataPoint(99);

// dynamicGraph1.invalidate();

}

}

最后補充下,當我加入第4個頁面屏的內容時,電腦上模擬下還行,基于STM32F429開發板已經沒法正常穩定運行了,畢竟資源有限。當然,不同的人設計4個頁面所涉及的內容及任務數可能大相徑庭,可能的結果這里不好說絕對。不過,我的測試過程中運行上文中提到的前3個頁面內容及功能是沒有問題的。



審核編輯:劉清

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

    關注

    2289

    文章

    11011

    瀏覽量

    362347
  • TouchGFX
    +關注

    關注

    1

    文章

    42

    瀏覽量

    13592
  • STM32F429
    +關注

    關注

    0

    文章

    40

    瀏覽量

    11217

原文標題:STM32 TouchGFX 部分控件測試備忘

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    求助,移植touchgfx之后stm32不運行程序怎么解決?

    這個是我中斷優先級,還有touchgfx的中斷。進入debug運行都是在Reset_Handler 然后進入debug點很多次運行才執行發送串口而且還是亂碼,不加入之前還是正常的
    發表于 05-21 08:23

    STM32U5+8bit_8080 LCD怎么配置touchgfx?

    我參與的項目使用STM32U575做為主空,使用fmc來驅動8080接口的8bitLCD,配置touchgfx時不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發表于 04-28 08:12

    STM32U5+8bit_8080 LCD怎么配置touchgfx

    我參與的項目使用STM32U575做為主空,使用fmc來驅動8080接口的8bitLCD,配置touchgfx時不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發表于 04-27 07:11

    請問TOUCHGFX中別人封裝好的控件容器可以直接使用嗎?

    TOUCHGFX中別人封裝好的控件容器可以直接使用嗎?
    發表于 03-13 08:15

    STM32f407+TOUCHGFX用CubeMX生成后編譯不通過是哪里出了問題?

    用CubeMX生成的STM32f407+TOUCHGFX,一路默認,生成文件后,一堆函數顯示找不到,還有就是RAM不夠用,是哪個沒配置好嗎?
    發表于 03-12 07:55

    TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,下載時報錯是怎么回事?

    我在用TouchGFX生成的工程,再使用STM32CubeMX生成MDK工程,編譯后沒有出錯,再是在下載時報錯: 如果不加載這個算法文件,那么按鍵圖標就是亂碼。
    發表于 03-11 06:50

    請問stm32L562中如何開發TouchGFX

    TouchGFX生成相關程序及文件 在cubeMX中找到開發板stm32L562eDK,在其中是能fmc,crc,freertos,x-cube-touchgfx生成相關代碼輸入程序后,黑屏。請教高手,還缺什么步驟?
    發表于 03-07 06:11

    TouchGFX助力STM32打造高效GUI顯示方案

    TouchGFX 是一款針對 STM32 微控制器優化的先進免費圖形軟件框架。 TouchGFX 利用 STM32 圖形功能和架構,通過創建
    的頭像 發表于 01-13 15:16 ?561次閱讀
    <b class='flag-5'>TouchGFX</b>助力<b class='flag-5'>STM32</b>打造高效GUI顯示方案

    交直流充電樁測試系統關于功能測試?

    1、充電功能測試 充電功能測試是充電樁測試中最基本也是最重要的部分,主要驗證充電樁能否正常為電動
    的頭像 發表于 12-17 18:18 ?528次閱讀
    交直流充電樁<b class='flag-5'>測試</b>系統關于<b class='flag-5'>功能</b><b class='flag-5'>測試</b>?

    AWTK 最新動態:支持瀏覽器控件

    導讀AWTK瀏覽器控件,基于webview項目實現,將瀏覽器嵌入到AWTK應用程序中,讓開發者可以方便的集成在線幫助和調用地圖等功能。awtk-widget-web-view是基于webview實現的AWTK瀏覽器控件,使得AW
    的頭像 發表于 11-20 01:05 ?557次閱讀
    AWTK 最新動態:支持瀏覽器<b class='flag-5'>控件</b>

    簡單認識意法半導體STM32C0系列微控制器

    ????????新微控制器STM32C071擴大閃存和RAM容量,增加USB控制器,支持TouchGFX圖形軟件,讓終端產品變得更纖薄、小巧,更具競爭力。
    的頭像 發表于 10-25 09:54 ?801次閱讀

    機智云ESP8266開發板RGB彩燈控件

    隨著智能家居技術的迅猛發展,RGB彩燈控件正逐漸成為現代家庭不可或缺的一部分。在這一潮流中,機智云(Gizwits)的ESP8266開發板RGB彩燈控件以其先進的物聯網技術和多樣化的燈光控制
    的頭像 發表于 08-09 08:10 ?687次閱讀
    機智云ESP8266開發板RGB彩燈<b class='flag-5'>控件</b>

    圖片動畫控件和Video image控件的使用方法

    在UI開發過程中,序列幀基本是繞不開的,AWTK 支持多種方法實現序列幀顯示,本文介紹圖片動畫控件和Video image控件的使用方法。
    的頭像 發表于 08-06 16:44 ?1489次閱讀
    圖片動畫<b class='flag-5'>控件</b>和Video image<b class='flag-5'>控件</b>的使用方法

    鴻蒙開發Ability Kit程序訪問控制:使用位置控件

    位置控件使用直觀且易懂的通用標識,讓用戶明確地知道這是一個獲取位置信息的按鈕。這滿足了授權場景需要匹配用戶真實意圖的需求。只有當用戶主觀愿意,并且明確了解使用場景后點擊位置控件,應用才會獲得臨時的授權,獲取位置信息并完成相應的服務功能
    的頭像 發表于 07-03 16:32 ?729次閱讀
    鴻蒙開發Ability Kit程序訪問控制:使用位置<b class='flag-5'>控件</b>

    touchGFX初始化卡住了怎么解決?

    之前TouchGFX是可以用的,但用cubeMX再生成代碼后就不能用了 檢查后發現卡在TouchGFX初始化階段,具體表現為藍色LED亮紅色LED不亮 嘗試把堆棧的空間翻倍也沒用
    發表于 07-02 07:35