• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于STM32CubeMX的單片機(jī)最小系統(tǒng)設(shè)計

      2018-10-31 10:49:24楊曉艷陳亮

      楊曉艷 陳亮

      摘要:STM32CubeMX是意法半導(dǎo)體推出的面向STM全系列單片機(jī)系統(tǒng)開發(fā)的輔助工具軟件,可以極大地降低開發(fā)的工作量、時間和成本。本文以意法半導(dǎo)體發(fā)布的STM32F746VET6芯片最小系統(tǒng)開發(fā)案例為例,介紹STM32CubeMX工具軟件的使用流程。

      關(guān)鍵詞:STM32CubeMX;STM32系列單片機(jī);最小系統(tǒng)設(shè)計

      中圖分類號:TP368.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2018)06-0149-02

      隨著集成電路技術(shù)的高速發(fā)展,32位單片機(jī)(MCU)逐漸成為嵌入式系統(tǒng)設(shè)計的主流選擇。相對于8位MCU而言,32位MCU性能更強(qiáng)、功能更豐富、管腳更多,一定程度上增加了系統(tǒng)硬、軟件設(shè)計的難度。STM32CubeMX工具軟件為STM32系列單片機(jī)的開發(fā)工作帶來了極大的幫助,提升了工作效率。

      1 STM32CubeMX簡介

      STM32CubeMX具有圖形化操作界面,能方便地進(jìn)行管腳的功能定義,時鐘樹、外設(shè)參數(shù)和中間件的配置,可自動生成適合于多種集成開發(fā)環(huán)境(IAR EWARM、Keil MDK或基于GCC的IDE)工程項目的初始化C代碼,便于用戶在此基礎(chǔ)上進(jìn)行深層次開發(fā)。

      與STM32CubeMX工具軟件配套的STM32Cube庫主要包括兩大類:①HAL硬件抽象層:通過HAL可以通過標(biāo)準(zhǔn)API調(diào)用實現(xiàn)STM32系列單片機(jī)的程序互相移植。②中間件組件:包括RTOS、USB庫、文件系統(tǒng)、TCP/IP棧、觸摸感應(yīng)庫或圖形庫等,同時具備大量的樣例和演示代碼,可幫助用戶實現(xiàn)快速開發(fā)。

      2 芯片管腳的功能定義

      STM32F746VET6單片機(jī)最小系統(tǒng)設(shè)計主要涉及電源、復(fù)位、時鐘等基本功能設(shè)計,串口模塊用于說明外設(shè)參數(shù)的設(shè)置方法。在STM32CubeMX軟件中根據(jù)目標(biāo)芯片建立項目文件后,“Pinout(管腳配置)”界面將會顯示芯片的封裝圖形。芯片的電源、數(shù)字/模擬地、復(fù)位等固定功能管腳直接顯示功能名稱,以黃色或暗黃色標(biāo)注,用戶不能更改其定義;通用I/O管腳在未定義具體功能之前,顯示默認(rèn)名稱,以灰色標(biāo)注。在“Peripherals(外圍設(shè)備)”目錄下,軟件以模塊的功能進(jìn)行分類顯示,用戶根據(jù)需求進(jìn)行操作,軟件將自動分配相關(guān)管腳,顯示管腳的功能名稱,以綠色標(biāo)注。單片機(jī)管腳功能定義的操作流程如下圖1所示。

      (1)在“RCC”中配置系統(tǒng)時鐘源:“High Speed Clock(高速時鐘源)”選擇“Crystal/Ceramic Resonator”,軟件將自動分配“RCC_OSC_IN、RCC_ OSC_OUT”管腳?!癓ow Speed Clock(低速時鐘源)”選擇“Crystal/Ceramic Resonator”,軟件將自動分配“RCC_ OSC32_IN、RCC_OSC32_OUT”管腳。STM32F746VET6單片機(jī)可使用內(nèi)、外兩種時鐘源,如果選擇內(nèi)部時鐘,則不用配置該項。(2)在“SYS”中配置仿真端口:“Debug(調(diào)試)”選擇“JTAG(5 pins)”。軟件將自動分配“SYS-JTAG、SYS_JTDO-SWO、SYS_JTDI、SYS_JTCK-SWCLK、SYS_JTMS-SWDIO”等管腳。(3)在“USARTx”中配置串口:STM32F746VET6芯片具備多個串口模塊,可根據(jù)串口需求數(shù)量進(jìn)行配置。在“USART1”中,“Mode(模式)”選擇“Asynchronous(異步)”,軟件將自動分配“USART1_ RX、USART1_TX”。

      STM32F746VET6單片機(jī)最小系統(tǒng)管腳功能定義,如圖1所示。由于通用I/O管腳具備復(fù)用功能,如需調(diào)整軟件自動分配的管腳定義,可單擊目標(biāo)管腳,軟件將自動彈出管腳可復(fù)用功能的名稱菜單,選擇相應(yīng)功能即實現(xiàn)管腳功能更改,同時具備相同功能的管腳將自動恢復(fù)為通用I/O狀態(tài)。采用STM32CubeMX軟件進(jìn)行管腳功能定義,可以為單片機(jī)系統(tǒng)硬件電路設(shè)計提供直觀的芯片管腳分配參考,避免硬件設(shè)計中易發(fā)的管腳功能沖突的錯誤。

      3 芯片時鐘樹設(shè)置

      STM32F746VET6芯片采用多總線時鐘運行模式,能充分發(fā)揮不同運行速率的模塊功能,“Clock Configuration(時鐘配置)”界面可實現(xiàn)單片機(jī)時鐘樹管理,操作流程如下:

      (1)時鐘晶振參數(shù)設(shè)置。(2)總線時鐘源選擇。(3)鎖相環(huán)(PLL)的倍頻、分頻系數(shù)設(shè)置。(4)外設(shè)總線時鐘分頻系數(shù)設(shè)置。

      在進(jìn)行時鐘樹的參數(shù)配置時,每一個參數(shù)的變化都會導(dǎo)致與之相關(guān)的時鐘頻率發(fā)生變化。如果某個時鐘頻率配置過高,軟件將以紅色進(jìn)行提示錯誤結(jié)果,用戶可通過提示及時消除錯誤,使單片機(jī)的運行時鐘處于正常狀態(tài)。時鐘樹的配置結(jié)果將會生成的初始化C代碼直接體現(xiàn)出來,無需用戶再手動編寫初始化代碼。

      4 外設(shè)參數(shù)設(shè)置

      STM32CubeMX軟件的“Configuration”界面顯示了單片機(jī)所有處于激活狀態(tài)的功能模塊。雙擊模塊圖標(biāo),將會彈出“參數(shù)設(shè)置界面”,主要包括五種可選項。以本文定義的“USART1”為例進(jìn)行說明:

      “Parameter Settings”選項:串口參數(shù)設(shè)置?;緟?shù)(波特率、通信位長、校驗位、停止位);高級參數(shù)(收發(fā)功能、采樣方式),串口硬件特性。

      “User Constants”選項:用戶自定義參數(shù)。以宏定義形式出現(xiàn)在初始化代碼中。

      “NVIC Settings”選項:中斷定義。如果選擇中斷有效,將在初始化代碼中生成與串口中斷相關(guān)函數(shù)定義。

      “DMA Settings”選項:DMA方式設(shè)置。

      “GPIO Settings”選項:外設(shè)相關(guān)管腳映射列表??稍凇癠se Label”中定義用戶自定義名稱,將在初始化代碼中出現(xiàn)。

      5 初始化C代碼生成

      在完成上述操作之后,就可以開始生成初始化C代碼。點擊“Project(項目)”菜單下“Settings(設(shè)置)”命令,彈出“Project Settings(項目設(shè)置)”界面,填寫軟件工程項目的名稱、存放路徑,選擇IDE類型(本文選擇MDK-ARM V5)。再次選擇“Project”菜單,執(zhí)行“Generate Code(代碼生成)”命令,就可以生成包含初始化C代碼的軟件工程項目。

      利用MDK-ARM V5集成開發(fā)環(huán)境打開已生成的軟件工程項目,可以看到項目已具備完整的單片機(jī)軟件開發(fā)架構(gòu),初始化C代碼已自動生成。其中,項目結(jié)構(gòu)樹中顯示的“Drivers/STM32F7xx_ HAL_Driver”目錄包含了HAL庫文件,用戶只需要按照HAL編程規(guī)范在添加自定義功能,即可完成軟件項目的后續(xù)開發(fā)。

      打開自動生成的程序文件,會發(fā)現(xiàn)存在豐富的備注語句,用戶可通過備注了解程序文件已實現(xiàn)的功能。其中,程序文件中存在添加自定義代碼的備注,例程如下:

      /* USER CODE BEGIN … */

      //用戶添加代碼區(qū)域

      /* USER CODE END …*/

      用戶可在該類備注之間自行添加程序代碼以實現(xiàn)相關(guān)功能,如果是后期需要對項目功能進(jìn)行增刪,仍可以STM32CubeMX軟件進(jìn)行調(diào)整,軟件將自動保留備注之間的相關(guān)代碼,無需再次手動編寫,這項功能為項目的持續(xù)改進(jìn)提供了極大的便利。

      6 結(jié)語

      STM32CubeMX工具軟件用于STM32系列單片機(jī)系統(tǒng)開發(fā),能夠?qū)挠布O(shè)計到軟件開發(fā)整個流程起到強(qiáng)有力的輔助性作用,節(jié)約大量的工作量,加快系統(tǒng)開發(fā)進(jìn)程。HAL庫文件采用了分層設(shè)計的思想,實現(xiàn)了對硬件層的抽象設(shè)計,可以讓用戶從繁瑣的基于寄存器編程方式中解放出來,即提高了程序的可移植性,又可讓用戶投入更多精力到應(yīng)用層的開發(fā),極大提升了工作效率,是今后嵌入式系統(tǒng)設(shè)計與開發(fā)的新方向。

      參考文獻(xiàn)

      [1]羅清龍,馮敏,李清濤.基于STM32CubeMX嵌入式實驗教學(xué)改革實踐[J].計算機(jī)教育,2018,(1):155-158.

      [2]羅瑤,魏忠義,朱磊,等. STM32CubeMX的高速USB通信模塊設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2017,17(9):46-48.

      [3]邢方誠,王素珍,宗衛(wèi)華,等.基于STM32 CubeMX的高速嵌入式圖像采集系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(5):42-45.

      Abstract:STM32CubeMX is an assistant tool software developed by STMicroelectronics for the development of STM full range SCM systems, which can greatly reduce the development workload, time and cost. This article takes STMicroelectronics STM32F746VET6 chip minimum system development case as an example to introduce the use of STM32CubeMX tool software application process.

      Key words:STM32CubeMX; STM32 series single-chip; minimum system design

      宝兴县| 昌图县| 永吉县| 汾阳市| 广水市| 泽库县| 灵武市| 阿坝县| 呼和浩特市| 新竹县| 许昌市| 呼玛县| 惠安县| 萍乡市| 噶尔县| 邳州市| 靖江市| 高要市| 新兴县| 靖江市| 阿合奇县| 滦平县| 开鲁县| 浮梁县| 南郑县| 镇康县| 易门县| 兴宁市| 乐清市| 姜堰市| 图们市| 昔阳县| 聂荣县| 枣强县| 犍为县| 江阴市| 炎陵县| 庆安县| 吉水县| 沙洋县| 揭东县|