99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

采用 STM32H750 實現(xiàn)電機控制節(jié)點維護(hù)設(shè)備設(shè)計

jf_pJlTbmA9 ? 來源:STM32公眾號 ? 作者:STM32公眾號 ? 2023-10-24 15:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

wKgZomUDz-6AUm9kAAHTi4Sz00M608.jpg

點擊查看模擬器效果

在詳述實現(xiàn)過程之前,我們先看一下 ST 專家點評。

ST專家點評

從這個評測貼中我們可以看到這位同學(xué)給我們展示了如何使用STM32H750+TouchGFX開發(fā)平臺快速開發(fā)一個使用STM32H7對電機進(jìn)行控制的應(yīng)用。從UI設(shè)計的角度來看:UI的設(shè)計非常好,這位工程師對UI設(shè)計方面也是非常有心得的,由于UI設(shè)計的非常好,再加上TouchGFX Designer的布局和交互,設(shè)計出來的界面非常美觀。在UI設(shè)計方面,使用很多TouchGFX Designer自帶的控件進(jìn)行UI設(shè)計,基礎(chǔ)控件:如圖片/文本/進(jìn)度條控件進(jìn)行基礎(chǔ)布局,使用滑動容器控件和靜態(tài)圖表控件用與實現(xiàn)子頁面滑動/圖表等功能;并通過TouchGFX 模擬器進(jìn)行仿真測試,很方便的開發(fā)出一款界面美觀交互友好的嵌入式GUI產(chǎn)品。

從數(shù)據(jù)處理的角度看:UI設(shè)計好后,通過MVP機制對UI和后端數(shù)據(jù)處理進(jìn)行分離對電機進(jìn)行控制,前后端分離,方便未來增加和擴展更多功能。

從整體設(shè)計來看:設(shè)計的UI非常美觀,接近智能手機/手表的用戶體驗,功能實現(xiàn)比較完整. 是一個很好的的UI設(shè)計作品。

一、項目介紹

參加STM32論壇的STM32H750B-DK評測活動,利用提供的開發(fā)板做一個前期驗證項目。驗證項目是做一個手持的電機運動節(jié)點維護(hù)設(shè)備,方便攜帶到現(xiàn)場對電機進(jìn)行維護(hù),這里暫且稱為PAD。(實物演示視頻見本文上方作品展示)PAD通過UART電機控制節(jié)點連接通訊(如下圖所示),當(dāng)檢測到設(shè)備接入,PAD獲取其設(shè)備信息狀態(tài),包括固件版本、PCB版本、運行日志等。通過PAD還可以控制電機做一些簡單的運動測試,配置電機的運動參數(shù),如加速度、速度、電流等。由于時間有限,目前僅實現(xiàn)上述功能。

wKgZomUDz--AB_2GAAEmSVZC3Mc602.png

二、開發(fā)板STM32H750B-DK

開發(fā)板資源豐富,本項目比較關(guān)注的資源情況:

Arm? Cortex?-M7 內(nèi)核(帶雙精度浮點單元),400MHz主頻

4.3英寸RGB LCD,電容

外擴2 x 512Mbit Flash

擴128 Mbit SDRAM

UART接口

持Chrom-ART圖形加速

三、設(shè)計工具

STM32CubeMX

STM32CubeIDE 1.9.0

TouchGFX Designer V4.20

wKgaomUDz_GAW7nhAAE2U2xEVl0319.png

項目中用到的TouchGFX資源

(1)控件(Widget)

Box

Button

Image

Slider

Static Graph

Swipe Container

Text Area

Texture Mapper

(2)實現(xiàn)UI動效使用到的TouchGFX內(nèi)置的交互動作(Interactions Action)

Call new virtual function

Change screen

Move Widget

Fade Widget

Wait for

四、界面設(shè)計

不會UI設(shè)計的電子工程師不是好廚師,所以這一次親自操刀設(shè)計,整體設(shè)計風(fēng)格采用我喜歡的“毛玻璃效果”。TouchGFX Designer的模擬器非常實用,大大提高了調(diào)試效率,以下圖片均來自模擬器的截圖。實際上,模擬器的顯示效果與直接目視比較接近,視頻拍出來的效果比實際差了不少,屏幕顏色不對,還有條紋。。。截圖只能看靜態(tài)效果,動態(tài)效果請大家觀看文章上方視頻演示。目前實現(xiàn)了5個界面:開機、連接、功能選擇、信息顯示、電機控制。

4.1 開機動畫

wKgZomUDz_KADZ7zAABoXYQIfsA960.png

4.2 連接界面

wKgaomUDz_OAFkHkAAEvFrI2cW8083.png

4.3 功能選擇界面

wKgZomUDz_WALgZSAAGzd3XyZOM740.png

4.4信息顯示界面

wKgaomUDz_aAJKQiAAJD0fc0aco402.pngwKgaomUDz_iABv2LAAIZKZvqYgg413.png

wKgZomUDz_mASf0rAAIlypdLxH8870.png

wKgaomUDz_uAQhqbAAIImB1c3iE244.png

4.5電機控制界面

wKgZomUDz_yABjYoAAIbKiSUFb0489.png

wKgZomUDz_2AJLC8AAIYwMK63FI955.png

wKgaomUDz_-AfC-yAAIdnjhp7Nc360.png

wKgaomUD0ACAEbSGAAIcXTVsqDQ674.png

五、硬件交互

使用TouchGFX的MVP框架實現(xiàn)GUI與硬件的雙向交互。MVP的全稱為Model-View-Presenter,Model提供數(shù)據(jù),View負(fù)責(zé)顯示,Controller/Presenter負(fù)責(zé)邏輯的處理。在本項目中主要是檢測用戶在觸摸屏上的操作,轉(zhuǎn)換成相應(yīng)的UART命令發(fā)送至外部電機控制板;當(dāng)外部電機控制板的狀態(tài)發(fā)生變化時,也會主動發(fā)送數(shù)據(jù)到開發(fā)板,此時GUI負(fù)責(zé)刷新界面顯示的相關(guān)內(nèi)容。MVP框架應(yīng)該是TouchGFX中不易掌握的部分,UI怎么和硬件交互?這個是根本,每個項目都會涉及到。這里以本項目中的UART為例說明一下,如何通過操作屏幕上的按鈕來控制UART發(fā)送數(shù)據(jù)。

wKgZomUD0AKARFNfAABa9CX-8Ds965.png

以上述界面截圖中的STOP按鈕為例。在TouchGFX Designer中,我們給Screen1添加STOP按鈕,命名為con_stop(很多資料中介紹了這些基本操作,這里不再累述),我們要實現(xiàn)通過電擊此按鈕向UART發(fā)送數(shù)據(jù)。在界面右側(cè)的Interactions中添加con_stop按鈕的點擊事件。如圖上所示,觸發(fā)條件為按鈕點擊(序號1);觸發(fā)源選擇為con_stop按鈕(序號2);觸發(fā)執(zhí)行的動作為調(diào)用一個虛函數(shù),虛函數(shù)的名稱我們設(shè)定為con_stop_clicked(序號3)。然后按下F4執(zhí)行Generate Code生成代碼。TouchGFX Designer會自動生成這個函數(shù)的定義,在STM32cubeIDE中查看Screen1VeiwBase.hpp文件,可以看到此虛函數(shù)的聲明:

virtual void con_stop_clicked() { }

(1)手動在Screen1View.hpp文件中給Screen1View類添加此虛函數(shù):

virtual void con_stop_clicked();

手動在Screen1View.cpp中添加此虛函數(shù)的實現(xiàn)部分:

voidScreen1lView::con_stop_clicked()
{
presenter->con_stop_clicked();
}

上面這個函數(shù)調(diào)用了presenter中的con_stop_clicked()函數(shù)(函數(shù)名可以自己定),實際上這個函數(shù)我們還沒有實現(xiàn),接下來給presenter添加這個函數(shù)。

(2)手動在Screen1Persenter.hpp中,給Screen1Persenter類中添加函數(shù)con_stop_clicked:

virtual void con_stop_clicked();

手動在Screen1Persenter.cpp中添加這個函的實現(xiàn):

voidScreen1Presenter::con_stop_clicked()
{
model->con_stop_clicked();
}

(3)上面這個函數(shù)調(diào)用了model中的函數(shù)con_stop_clicked(這個函數(shù)名也可以自己定),好吧實際上這個函數(shù)我們也還沒實現(xiàn),接下來繼續(xù)。

手動在model.hpp文件中給Model類添加這個函數(shù):

void con_stop_clicked();

手動在model.cpp中添加上面函數(shù)的實現(xiàn)部分。

voidModel::con_stop_clicked()
{
uart_send_cmd_stop();
}

uart_send_cmd_stop()函數(shù)上就是發(fā)送UART數(shù)據(jù)的部分了,通常情況下是在uart.c中實現(xiàn)的,內(nèi)容類似下面這個。

HAL_UART_Transmit( huart1, (const uint8_t*) str, len, 1000);

在model.cpp中我們把uart_send_cmd_stop()這個函數(shù)作為外部函數(shù)引入:

extern"C"
{
externvoiduart_send_cmd_stop();
}
#endif

實際上這里偷懶了。項目中使用了FreeRTOS,有一個Uart_Task任務(wù),負(fù)責(zé)UART的數(shù)據(jù)收發(fā)處理。在多任務(wù)的情況下,多個任務(wù)涉及同一個硬件應(yīng)該確?;コ庠L問。所以這里應(yīng)該使用信號量,改變信號量的狀態(tài)來通知Uart_Task任務(wù)實際發(fā)送數(shù)據(jù)到UART。

一波操作下來, View ---> Presenter ---> Model ---> UART,千山萬水有點麻煩,不過MVP的優(yōu)點還是很多的,想要了解更多大家可以問問百度。

六、總結(jié)

之前一直用LVGL,做過一些項目,也算是比較熟悉了。最近半年才開始使用 TouchGFX。一番體驗下來不得不說,在 STM32上做 GUI 應(yīng)用 TouchGFX 確實很有優(yōu)勢,畢竟是 ST 親兒子,先天優(yōu)勢,生態(tài)全、控件多,實現(xiàn)各種炫酷效果不在話下。最方便的是幾乎不需要怎么優(yōu)化,不用操心什么 DMA2D、LDTC……,底層ST都幫你搞好了,跑起來效果就已經(jīng)非常流暢。ST 新出的 NeoChrom GPU 看介紹更牛X,有機會到要試試到底有多牛。

來源:STM32論壇網(wǎng)友moticsoft 版權(quán)歸原作者所有

直接轉(zhuǎn)載來源:STM32公眾號

免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理

審核編輯 黃宇

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

    關(guān)注

    3573

    文章

    1964

    瀏覽量

    272004
  • STM32H750
    +關(guān)注

    關(guān)注

    1

    文章

    16

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    STM32H750B-DK 板載STLINK 燒錄自己程序?qū)е聼o法使用了,怎么解決?

    STM32H750B-DK 板載STLINK 燒錄自己程序?qū)е聼o法使用了,說有此開發(fā)板的板子STLINK 程序,謝謝! 補充:STM32H750B-DK 自帶的STLK 無法上電了,原因是我用CN5 的SWD 燒錄了程序,目前通過STLK 就無法上電了,可否再燒錄程序讓S
    發(fā)表于 06-20 06:15

    如何使用cubeide配置stm32H750環(huán)境?

    如何使用cubeide配置stm32H750環(huán)境,但是在SYS中沒有debug選項,也就選不了serial wire
    發(fā)表于 04-23 07:55

    STM32H750VB sys為什么無法選擇debug模式?

    STM32H750VB sys無法選擇debug 模式, 哪位大佬可以解答一下,非常感謝
    發(fā)表于 03-19 18:32

    如何通過J-Link實現(xiàn)STM32H5控制調(diào)試端口

    基于J-Link實現(xiàn)STM32H5安全編程介紹了在禁用TrustZone時,如何通過J-Link實現(xiàn)STM32H5控制調(diào)試端口的安全鎖定或回
    的頭像 發(fā)表于 03-17 10:25 ?499次閱讀
    如何通過J-Link<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>STM32H</b>5<b class='flag-5'>控制</b>調(diào)試端口

    請問STM32H750如何搭配88E6320使用?

    STM32H750如何搭配88E6320來使用?
    發(fā)表于 03-13 07:33

    STM32H750更改時鐘后,程序無法運行怎么解決?

    各位大佬,我想請教一個問題: 為了驗證H750主時鐘頻率和功耗的關(guān)系: 用STM32CUBEMX配置STM32H750VBT6的主時鐘為:100MHz,程序可以正常運行,然后將主時鐘改至120MHz
    發(fā)表于 03-12 06:38

    STM32H750內(nèi)部flash讀寫的疑問求解

    請教下,STM32H750XBHx我看資料內(nèi)置flash為128K,并且flash擦除的最小單元也是128K。這樣的話我有數(shù)據(jù)要保存應(yīng)該怎樣處理好呢?寫數(shù)據(jù)時是要將程序部分一起擦除再寫回去嗎?這樣會不會有風(fēng)險?
    發(fā)表于 03-12 06:29

    stm32h750vbt6設(shè)置了LSE后,裝載后RESET失效了怎么解決?

    stm32h750vbt6設(shè)置了LSE后,裝載后RESET失效
    發(fā)表于 03-07 15:16

    STM32H750 FDCAN發(fā)送異常的原因?

    最近在調(diào)CANopen,用的芯片是STM32H750VBT6,發(fā)現(xiàn)按照ST的例程生成簡單的測試程序后,只要執(zhí)行一次發(fā)送后,CAN模塊就會自動一直往外發(fā)送這幀數(shù)據(jù),查看寄存器發(fā)現(xiàn)發(fā)送掛起寄存器一直有
    發(fā)表于 03-07 08:42

    設(shè)備遠(yuǎn)程維護(hù)如何實現(xiàn)?遠(yuǎn)程維護(hù)平臺的功能特點

    隨著工業(yè)智能化和數(shù)字化轉(zhuǎn)型的快速推進(jìn),設(shè)備遠(yuǎn)程維護(hù)已成為企業(yè)提升運營效率、降低維護(hù)成本的重要手段。通過遠(yuǎn)程維護(hù)平臺,企業(yè)能夠?qū)崟r監(jiān)控設(shè)備狀態(tài)
    的頭像 發(fā)表于 02-21 15:50 ?423次閱讀
    <b class='flag-5'>設(shè)備</b>遠(yuǎn)程<b class='flag-5'>維護(hù)</b>如何<b class='flag-5'>實現(xiàn)</b>?遠(yuǎn)程<b class='flag-5'>維護(hù)</b>平臺的功能特點

    PLC智能網(wǎng)關(guān)實現(xiàn)設(shè)備遠(yuǎn)程維護(hù)的方式

    一、設(shè)備遠(yuǎn)程維護(hù)的要求 在現(xiàn)代工業(yè)自動化系統(tǒng)中,PLC作為自動化設(shè)備的核心控制單元,其穩(wěn)定運行對于生產(chǎn)線的正常運作至關(guān)重要。然而,隨著生產(chǎn)設(shè)備
    的頭像 發(fā)表于 01-08 15:31 ?370次閱讀

    【正點原子STM32H7R3開發(fā)套件試用體驗】4G聯(lián)網(wǎng)工業(yè)設(shè)備控制網(wǎng)關(guān)

    這次有幸參加 正點原子STM32H7R3開發(fā)套件 的評測,計劃使用 正點原子STM32H7R3開發(fā)套件,來完成一個 4G聯(lián)網(wǎng)工業(yè)設(shè)備控制網(wǎng)關(guān)。 評測計劃: 1. 通過正點原子開發(fā)板資料
    發(fā)表于 12-18 14:14

    基于STM32H750和RT-Thread的CANFD通信實現(xiàn)的記錄

    腳本的測試環(huán)境可以完全模擬各類汽車通信網(wǎng)絡(luò)的上的任意節(jié)點的任意功能,但是由于價格極其昂貴,所以在項目預(yù)算吃緊的情況下,無法做到license完全人手一份。那么在這樣
    的頭像 發(fā)表于 12-10 01:01 ?1793次閱讀
    基于<b class='flag-5'>STM32H750</b>和RT-Thread的CANFD通信<b class='flag-5'>實現(xiàn)</b>的記錄

    使用MSPM0 MCU為步進(jìn)電機和有刷直流(BDC)電機實現(xiàn)優(yōu)化的H橋驅(qū)動器控制

    電子發(fā)燒友網(wǎng)站提供《使用MSPM0 MCU為步進(jìn)電機和有刷直流(BDC)電機實現(xiàn)優(yōu)化的H橋驅(qū)動器控制.pdf》資料免費下載
    發(fā)表于 09-02 09:49 ?0次下載
    使用MSPM0 MCU為步進(jìn)<b class='flag-5'>電機</b>和有刷直流(BDC)<b class='flag-5'>電機</b><b class='flag-5'>實現(xiàn)</b>優(yōu)化的<b class='flag-5'>H</b>橋驅(qū)動器<b class='flag-5'>控制</b>

    求助,關(guān)于STM32H750的AD采樣問題求解

    芯片是STM32H750VB,100腳LQFP,查看官方資料,ADC1快速通道最快19MHZ,采樣率16位最快1.9M。 我設(shè)置ADC為連續(xù)采樣模式,DMA循環(huán),頻率16MHZ,1.5個采樣周期
    發(fā)表于 07-26 07:07