chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

wKgZomUDz-6AUm9kAAHTi4Sz00M608.jpg

點擊查看模擬器效果

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

ST專家點評

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

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

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

一、項目介紹

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

wKgZomUDz--AB_2GAAEmSVZC3Mc602.png

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

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

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

4.3英寸RGB LCD,電容

外擴2 x 512Mbit Flash

擴128 Mbit SDRAM

UART接口

持Chrom-ART圖形加速

三、設計工具

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內置的交互動作(Interactions Action)

Call new virtual function

Change screen

Move Widget

Fade Widget

Wait for

四、界面設計

不會UI設計的電子工程師不是好廚師,所以這一次親自操刀設計,整體設計風格采用我喜歡的“毛玻璃效果”。TouchGFX Designer的模擬器非常實用,大大提高了調試效率,以下圖片均來自模擬器的截圖。實際上,模擬器的顯示效果與直接目視比較接近,視頻拍出來的效果比實際差了不少,屏幕顏色不對,還有條紋。。。截圖只能看靜態(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負責顯示,Controller/Presenter負責邏輯的處理。在本項目中主要是檢測用戶在觸摸屏上的操作,轉換成相應的UART命令發(fā)送至外部電機控制板;當外部電機控制板的狀態(tài)發(fā)生變化時,也會主動發(fā)送數(shù)據(jù)到開發(fā)板,此時GUI負責刷新界面顯示的相關內容。MVP框架應該是TouchGFX中不易掌握的部分,UI怎么和硬件交互?這個是根本,每個項目都會涉及到。這里以本項目中的UART為例說明一下,如何通過操作屏幕上的按鈕來控制UART發(fā)送數(shù)據(jù)。

wKgZomUD0AKARFNfAABa9CX-8Ds965.png

以上述界面截圖中的STOP按鈕為例。在TouchGFX Designer中,我們給Screen1添加STOP按鈕,命名為con_stop(很多資料中介紹了這些基本操作,這里不再累述),我們要實現(xiàn)通過電擊此按鈕向UART發(fā)送數(shù)據(jù)。在界面右側的Interactions中添加con_stop按鈕的點擊事件。如圖上所示,觸發(fā)條件為按鈕點擊(序號1);觸發(fā)源選擇為con_stop按鈕(序號2);觸發(fā)執(zhí)行的動作為調用一個虛函數(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ù)調用了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ù)調用了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)的,內容類似下面這個。

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任務,負責UART的數(shù)據(jù)收發(fā)處理。在多任務的情況下,多個任務涉及同一個硬件應該確?;コ庠L問。所以這里應該使用信號量,改變信號量的狀態(tài)來通知Uart_Task任務實際發(fā)送數(shù)據(jù)到UART。

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

六、總結

之前一直用LVGL,做過一些項目,也算是比較熟悉了。最近半年才開始使用 TouchGFX。一番體驗下來不得不說,在 STM32上做 GUI 應用 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 版權歸原作者所有

直接轉載來源:STM32公眾號

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

審核編輯 黃宇

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

    關注

    3573

    文章

    1969

    瀏覽量

    272062
  • STM32H750
    +關注

    關注

    1

    文章

    16

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    stm32h750h743區(qū)別是什么?

    stm32h750h743區(qū)別
    發(fā)表于 07-18 07:21

    STM32H750B-DK 板載STLINK 燒錄自己程序導致無法使用了,怎么解決?

    STM32H750B-DK 板載STLINK 燒錄自己程序導致無法使用了,說有此開發(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控制調試端口

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

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

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

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

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

    STM32H750內部flash讀寫的疑問求解

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

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

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

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

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

    設備遠程維護如何實現(xiàn)?遠程維護平臺的功能特點

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

    PLC智能網(wǎng)關實現(xiàn)設備遠程維護的方式

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

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

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

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

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

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

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