基於ST STM32 Cortex-M4(STM32F4 or L4) 的碼錶方案

在單片機系統上實現圖形界面,最簡單的方法是使用串口屏,但是在體積有限的手持機應用中,串口屏顯得有點笨重了,而且板子往往不能適應需求,訂做串口屏成本又太高。這就需要使用GUI框架來完成圖形界面。在單片機領域的GUI框架有:ucguiSTemWin/emwin)、TouchGFXGuiLiteLittlevGL等。

emwin提供的更多是一些較底層的函數(如:畫線、畫圓),而且不能拖控制項,做出來的界面更接近像素時代的產物。在emwin的開發中,要想顯示圖片,需要把圖片轉成bmp格式,再用BmpCvt轉成數組,最後才用emwin的函數去調用這個數組,這是比較麻煩的。

TouchGFX都可以很好的解決這些問題,但是只能用於STM32的單片機上。這是因為TouchGFX是ST全資子公司,目前TouchGFX 僅被授權使用在ST晶片上。

2018年7月10日,全球半導體領導者意法半導體(ST)宣布收購TouchGFX軟體的開發商和供應商Draupner Graphics,標示著TouchGFX翻開了新的篇章。ST此次收購TouchGFX,旨在為嵌入式應用提供高度先進的GUI解決方案來擴展STM32生態系統。對於雙方而言,無疑是雙贏的結果。本文章將通過一個成熟的應用,向你展示TouchGFX 強大的魅力,以及STM32做為GUI 設計平台的優勢與便利。


工欲善其事,必先利其器。
首先給出開發工具下載地址:
TouchGFX:
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/touchgfxdesigner.html

STM32CubeIDE:
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html

STM32CubeProgrammer:
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stm32cubeprog.html

STM32CubeMX:
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html

 其次,介紹相關工具及其作用:
TouchGFX:

TouchGFX是為STM32微控制器優化的高級免費圖形軟體框架。利用STM32的圖形功能和架構,TouchGFX通過創建令人驚嘆的類似智慧型手機的圖形用戶界面,加速了事物的人機界面革命。
TouchGFX框架包括TouchGFX Designer(TouchGFXDesigner),一個易於使用、基於拖放的圖形構建PC工具,以及一個強大和優化的圖形核心TouchGFX引擎。TouchGFX結合了所見即所得模擬器和自動代碼生成,使GUI開發變得簡單。它涵蓋了從早期設計草圖到獨家最終產品的所有步驟,通過對成品原型的快速疊代。
TouchGFX Designer是一個獨立的軟體工具,允許簡單和快速的圖形評估和概念證明。TouchGFX框架,包括TouchGFX設計器,分布在STM32Cube MCU包中。它與STM32CubeMX初始化和代碼生成工具完全兼容,可以在統一的項目環境中無縫地協同開發圖形和主應用程序。


STM32CubeIDE:

STM32CubeIDE是一個多操作系統集成開發工具,是STM32Cube軟體生態系統的一部分。
STM32 CuBeIDE是一種先進的C/C++開發平台,具有STM32微控制器和微處理器的外圍配置、代碼生成、代碼編譯和調試功能。它基於Eclipse®/CDT框架和GCC工具鏈進行開發,GDB用於調試。它允許集成數百個現有插件,這些插件完成了Eclipse®IDE的功能。
STM32CubeIDE集成了STM32CubeMX的STM32配置和項目創建功能,提供了一體式工具體驗,並節省了安裝和開發時間。在選擇一個空的STM32 MCU或MPU之後,或者從預裝配的微控制器或微處理器中選擇一個單板或一個實例,創建項目並生成初始化代碼。在開發過程中,用戶可以隨時返回到外圍設備或中間件的初始化和配置,重新生成初始化代碼,而不會對用戶代碼產生影響。
STM32CubeIDE包括構建和堆棧分析器,它們為用戶提供有關項目狀態和內存需求的有用信息。
STM32CubeIDE還包括標準和高級調試功能,包括CPU核心寄存器、存儲器和外圍寄存器的視圖,以及實時變量監視、串行線查看器接口或故障分析器。

主要特點

  • 來自STM32CubeMX的服務集成:
    • STM32單片機、微處理器、開發平台及實例方案選擇
    • 引腳、時鐘、外圍設備和中間件配置
    • 項目創建和初始化代碼的生成
    • 軟體和中間件由增強的STM32Cube擴展包完成
    • 基於Eclipse®/CDT,支持Eclipse®加載項、GNU C/C++用於ARM®工具鏈和GDB調試器
  • 其他高級調試功能包括:
    • CPU核心、外圍寄存器和內存視圖
    • 實時變量監視視圖
    • 系統分析和實時跟蹤(SWV)
    • CPU故障分析工具
    • 支持ST-LINK(STMicroelectronics)和J-LINK(SEGGER)調試探頭
    • 從Atolonic®TrueSTUDIO®和AC6 System Workbench for STM32(SW4SM32)導入項目
    • 多操作系統支持:僅限64位版本的Windows®、Linux®和macOS®




STM32CubeProgrammer:


STM32CubeProgrammer(STM32CubeProgrammer,STM32CubeProgrammer)是一個多操作系統軟體工具,用於STM32產品的編程。
它為通過調試接口(JTAG和SWD)和引導加載程序接口(UART、USB DFU、I2C、SPI和CAN)讀取、寫入和驗證設備內存提供了一個易於使用和高效的環境。
STM32CubeProgrammer提供多種功能來編程STM32內部存儲器(如Flash、RAM和OTP)以及外部存儲器。
STM32CubeProgrammer還允許選項編程和上載、編程內容驗證和通過腳本編程實現編程自動化。
STM32CubeProgrammer提供GUI(圖形用戶界面)和CLI(命令行界面)版本。


STM32CubeMX:

STM32CubeMX是一種圖形化工具,它允許對STM32微控制器和微處理器進行非常簡單的配置,還可以通過一步一步的過程為Arm®Cortex®-M內核或Arm®Cortex®-a core生成部分Linux®設備樹。

第一步包括選擇:一個stmicroelectronics STM32微控制器、微處理器或與所需外圍設備相匹配的開發平台,或是在特定開發平台上運行的示例。
對於微處理器,第二步允許為整個系統配置GPIO和時鐘設置,並以交互方式將外圍設備分配給Arm®Cortex®-M或Cortex®A world。特定的實用程序(如DDR配置和調整)使STM32微處理器的入門變得容易。對於Cortex®-M core,配置包括與微控制器描述的步驟完全相似的附加步驟。

對於微控制器和微處理器Arm®Cortex®-M,第二步包括配置每個所需的嵌入式軟體,這要歸功於pinout衝突解決程序、時鐘樹設置助手、功耗計算器以及配置外圍設備(如GPIO或USART)和中間件堆棧(如USB或TCP/IP)的實用程序。
軟體棧和軟體棧可以擴展到stm32擴展包。stmicroelectronics或stmicroelectronics的合作夥伴軟體包可以直接從STM32CubeMX中提供的專用軟體包管理器下載,而其他軟體包則可以從本地驅動器安裝。
此外,STM32CubeMX交付中的一個獨特實用程序STM32PackCreator將幫助開發人員構建自己的增強STM32Cube擴展包。

最終,用戶將啟動與所選配置選項匹配的生成。此步驟提供了Arm®Cortex®-M的初始化C代碼,可以在多個開發環境中使用,或者為Arm®Cortex®-a提供部分Linux®設備樹。STM32CubeMX在STM32Cube中交付。

主要特點

  • 直觀的STM32微控制器和微處理器選擇
  • 豐富易用的圖形用戶界面,允許配置:
  • 帶自動衝突解決的引腳輸出
  • Arm®Cortex®-M core的外設和中間件功能模式以及參數約束的動態驗證
  • 具有動態配置驗證的時鐘樹
  • 具有估計消耗結果的功率序列
  • 生成符合IAR的初始化C代碼項目™,用於Arm®Cortex®-M core的Keil®和STM32CubeIDE(GCC編譯器)
  • 為Arm®Cortex®-a核心(STM32微處理器)生成部分Linux®設備樹
  • 藉助STM32PackCreator開發增強型STM32Cube擴展包
  • 將STM32Cube擴展包集成到項目中
  • 作為獨立軟體運行在Windows®、Linux®和macOS®(macOS®是Apple Inc.在美國和其他國家/地區註冊的商標)操作系統和64位Java運行時環境上的可用性


關此Cortex-M4 系列,ST官方的開發板做的Demo示例非常炫酷,如下測試視頻,大家參考借鑑。

下面通過一個簡單的例子,展示TouchGFX的強大魅力,藉此,你可以很容易的開發對應碼錶的GUI,我們的客戶也是這樣做的。

-1.啟動界面,工程與參數配置


-2.模板選擇


-3.模板信息


-4.工程配置完成界面


-5.設計界面


-6.控制項與參數等窗口預覽



-7.控制項加載與對應關係


-8.字體控制項預覽


-9.字體控制項參數修改


-10.圖片窗口參數配置與修改


-11.模擬運行

-11-1.模擬動態運行效果:


-12.下載到目標板運行


-13.運行動態效果,由於視頻比較大,大家可以自行測試驗證。

-14.代碼與調試
源碼工程文件在,TouchGFX工程目錄下


打開後效果,STM32CubeIDE 是STM32CubeMx+STM32TrueStudio的合成版,如下截圖

工程窗口與源代碼:


至此一個簡單的示例介紹完畢。

STM32CubeMx已經集成在STM32CubeIDE中,就不再詳細介紹使用。

下面STM32CubeProgrammer,就是一個上位機燒錄軟體,可以單獨燒錄bin or Hex文件到目標板,如下截圖:



►場景應用圖

►產品實體圖

►展示板照片

►方案方塊圖

►圖片硬解碼顯示

►混合顯示效果圖

►GUI軟體開發調試界面

►代碼開發調試

►源碼支持的開發環境

►核心技術優勢

 使用STM32F469發現工具包(32F469IDISCOVERY),用戶可以開發  在帶有Arm®Cortex®的STM32F469高性能MCU上輕鬆應用-  M4核心和Chrom-ART加速器。Discovery kit支持廣泛的使用  高級圖形、音頻、多傳感器支持、WVGA  彩色顯示,安全,內存擴展和連接功能。  包括嵌入式ST-LINK/V2-1調試器/程序員。專用附加組件  板可以通過ARDUINO®Uno或擴展連接器進行連接。  通過TouchGFX 可以直接連接到此開發板,快速進行GUI產品的開發。

►方案規格

碼錶參數規格:  GPS支持GPS/GPS+北斗/GPS+GLONASS雙星定位  顯示屏2.2寸專用戶外液晶彩屏,解析度240*320  操作溫度-10℃~50℃  產品大小85*53.5*18.8mm  接收天線內置式天線  高度傳感器氣壓式高度計  溫度傳感器支持  防水等級IPX7  內存容量約3000小時以上騎行數據(視內存使用情況)  顯示數據單屏最大顯示10項數據,可自由設置80多項可選數據  存儲格式fit  電池不可拆卸鋰電池,可連續不間斷使用22小時(不開背光,典型值),開啟GPS省電模式,背光採用低亮度值等措施能有效延長使用時間。  ANT+支持(心率、速度、踏頻、功率計等)  充電接口MicroUSB,支持數據傳輸  無線接口藍牙4.0BLE 、WIFI 802.11 b/g/n  標準配件iGS620主機*1、MicroUSB數據線*1、專用底座*2、底座墊*2、O型橡膠圈*4、使用說明書*1  選購配件速度、踏頻、心率傳感器等 對應開發板規格參數:  STM32F469NIH6微控制器,具有2 MB閃存和324 KB RAM,採用BGA216封裝  板載ST-LINK/V2-1 SWD調試器,支持USB重新枚舉功能:  啟用Mbed(mbed.org網站)  USB功能:USB虛擬COM埠、大容量存儲、調試埠  4英寸800x480像素TFT彩色LCD,帶MIPI DSI接口和電容式觸摸屏  SAI音頻DAC,帶立體聲耳機輸出插孔  3個MEMS麥克風  MicroSD卡連接器  I2C擴展連接器  4mx32位SDRAM  128 Mbit四SPI NOR閃存  重置和喚醒按鈕  4色用戶LED  帶Micro AB接口的USB OTG FS 三種電源選項:  擴展接頭和Arduino™ UNO V3連接器  全面的免費軟體,包括各種示例,STM32Cube包的一部分  由多種集成開發環境支持,例如:STM32CubeIDE,Keil5,IAR,TrueStudio

技術文檔

類型標題檔案
硬件Schematics
操作手冊User Manual
硬件Data Brief
操作手冊Getting start