日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

STM32 TouchGFX部分控件功能測試

茶話MCU ? 來源:茶話MCU ? 作者:茶話MCU ? 2022-08-22 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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。當我在相應(yīng)hpp頭文件里添加虛擬函數(shù)聲明時,需要在IDE環(huán)境里專門對該頭文件做個save操作,不然在cpp函數(shù)里寫好相應(yīng)函數(shù)后編譯時總提示沒有做函數(shù)聲明。 舉個例子說下,比方我要在Screen1View.cpp寫一個IncDuty()函數(shù)。

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

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

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

但別的cpp文件修改后倒不用單獨做save操作,直接編譯即可。這個地方因為要操作的文件較多,我多次忘記,直到編譯提醒才知道?!静恢搯栴}是否跟IDE有關(guān)?我沒測試別的IDE。反正提醒下吧?!?/p>

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

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

剛開始我用的是這個函數(shù):

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

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

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

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

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

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

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

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

void Screen2View:: DispAdcValue()

{

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

//textArea1.resizeToCurrentText();

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

textArea1.invalidate();

}

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

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

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

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

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

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

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

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

{

//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個頁面屏的內(nèi)容時,電腦上模擬下還行,基于STM32F429開發(fā)板已經(jīng)沒法正常穩(wěn)定運行了,畢竟資源有限。當然,不同的人設(shè)計4個頁面所涉及的內(nèi)容及任務(wù)數(shù)可能大相徑庭,可能的結(jié)果這里不好說絕對。不過,我的測試過程中運行上文中提到的前3個頁面內(nèi)容及功能是沒有問題的。



審核編輯:劉清

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

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374749
  • TouchGFX
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    14244
  • STM32F429
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    12112

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    STM32H750B-DK開發(fā)板 快速上手&amp;TouchGFX入門

    首先是一段很炫酷的STM32蝴蝶Logo的動畫,而后可以進行功能菜單選擇:左側(cè)的STemWin Demo,或者是右側(cè)的TouchGFX Demo: ? 點擊下方的“ i ”還可以查看開發(fā)板的一些信息,例如
    發(fā)表于 01-10 02:07

    廣州易顯操作按鈕控件實驗

    目錄一、實驗?zāi)康亩嶒炘O(shè)備三、實驗步驟3.1新建工程3.2新建畫面3.3添加控件3.4模擬工程3.5硬件驗證一、實驗?zāi)康?1、AVR、PIC、STM等8位或者32位單片機的串口與單片機智能顯示卡
    的頭像 發(fā)表于 12-02 16:29 ?569次閱讀
    廣州易顯操作按鈕<b class='flag-5'>控件</b>實驗

    【課程升級】STM32U5開發(fā)板《TouchGFX 圖形界面開發(fā)》,從快速入門到深度UI實戰(zhàn)教程

    好消息,華清遠見STM32U5開發(fā)板配套課程升級通知!本次升級計劃,主要致力于為初學者提供更深入、更實用的TouchGFX圖形界面開發(fā)學習體驗。01課程升級核心內(nèi)容快速入門,構(gòu)建完整學習路徑
    的頭像 發(fā)表于 11-04 11:05 ?683次閱讀
    【課程升級】<b class='flag-5'>STM32</b>U5開發(fā)板《<b class='flag-5'>TouchGFX</b> 圖形界面開發(fā)》,從快速入門到深度UI實戰(zhàn)教程

    電池保護板測試系統(tǒng)的功能驗證

    電池保護板測試設(shè)備是用于驗證電池保護板功能性能的專用檢測系統(tǒng)。電池保護板是鋰電池組的重要組成部分,負責監(jiān)控電池狀態(tài)、實施充放電保護、平衡電池電壓等功能
    的頭像 發(fā)表于 09-02 15:52 ?887次閱讀

    touchgfx4.25顏色錯誤是什么原因?qū)е碌?

    touchgfx4.25顏色錯誤 .紫色顯示成了藍色. 使用rgb888或者rgb565模式都試過結(jié)果一樣.后方的紅綠藍紫是svg圖片.非box控件的顏色.
    發(fā)表于 08-14 06:21

    HarmonyOS實戰(zhàn):快速實現(xiàn)一個上下滾動的廣告控件

    上要想實現(xiàn)這樣的功能并不容易,那么在鴻蒙上怎么實現(xiàn)這樣的功能呢?本篇文章教你使用最簡單的方式實現(xiàn)一個支持上下滾動的廣告控件,建議點贊收藏!
    的頭像 發(fā)表于 06-24 17:05 ?694次閱讀

    TouchGFX Designer下載工程到STM32H7S7-DK報錯的原因?

    我在使用TouchGFX Designer下載工程,編譯無錯誤,下載提示錯誤,日志如下: Flashmake -f ../../gcc/Makefile flashmake -C D:/stm32
    發(fā)表于 06-17 07:26

    TouchGFX Designer下載工程到STM32H7S7-DK報錯的原因?

    我在使用TouchGFX Designer下載工程,編譯無錯誤,下載提示錯誤,日志如下: Flashmake -f ../../gcc/Makefile flashmake -C D:/stm32
    發(fā)表于 06-12 07:55

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

    MCU:STM32U585CIU6 cubemx:6.14 touchgfx:25 我在cubemx配置生成touchgfx的初始化,時基是TIM7,沒有用RTOS,生成之后再用designer隨便
    發(fā)表于 06-10 07:05

    STM32U5+8bit_8080 LCD 怎么配置touchgfx

    我參與的項目使用STM32U575做為主空,使用fmc來驅(qū)動8080接口的8bitLCD,配置touchgfx時不能配置為8bit,其他選型例如DMA2D也使用不了,我該怎么做?
    發(fā)表于 06-09 06:23

    移植touchgfx之后stm32不運行程序,為什么?

    這個是我中斷優(yōu)先級,還有touchgfx的中斷。進入debug運行都是在Reset_Handler 然后進入debug點很多次運行才執(zhí)行發(fā)送串口而且還是亂碼,不加入之前還是正常的
    發(fā)表于 06-06 07:55

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

    MCU:STM32U585CIU6 cubemx:6.14 touchgfx:25 我在cubemx配置生成touchgfx的初始化,時基是TIM7,沒有用RTOS,生成之后再用designer隨便
    發(fā)表于 06-06 07:43

    請問X—CUBE—AI和touchgfx沒法同時使用嗎?

    啟用了touchgfx,X—CUBE-AI的device application就無法選擇了?這倆工具沒法同時使用嗎?小白求問佬們
    發(fā)表于 06-06 07:16

    整車測試:外觀功能測試

    在開展整車外觀功能測試前,需要做好充分準備工作。首先要明確車輛的設(shè)計圖紙、技術(shù)規(guī)范和驗收標準,這是判斷車輛外觀功能是否合格的重要依據(jù)。同時,確保測試場地清潔、干燥且光線充足,避免外界因
    的頭像 發(fā)表于 05-27 10:51 ?1702次閱讀
    整車<b class='flag-5'>測試</b>:外觀<b class='flag-5'>功能</b><b class='flag-5'>測試</b>篇

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

    這個是我中斷優(yōu)先級,還有touchgfx的中斷。進入debug運行都是在Reset_Handler 然后進入debug點很多次運行才執(zhí)行發(fā)送串口而且還是亂碼,不加入之前還是正常的
    發(fā)表于 05-21 08:23
    浦城县| 措勤县| 宁津县| 松潘县| 枣阳市| 巴里| 马公市| 忻州市| 诸城市| 徐闻县| 镇原县| 夏邑县| 焉耆| 浦城县| 清水县| 蓬安县| 柘荣县| 额尔古纳市| 毕节市| 三亚市| 晋宁县| 当涂县| 新余市| 井冈山市| 佛山市| 治县。| 平舆县| 沾化县| 稻城县| 正阳县| 老河口市| 宜兰县| 鄯善县| 德州市| 普安县| 林口县| 黎城县| 库尔勒市| 中超| 建始县| 谢通门县|