国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32CubeMX圖形化編程教學(xué)改革的研究

2021-06-17 08:19龍祖連
電子制作 2021年10期
關(guān)鍵詞:寄存器圖形化時(shí)鐘

龍祖連

(廣西水利電力職業(yè)技術(shù)學(xué)院,廣西南寧,530023)

0 前言

在電子信息專業(yè)人才培養(yǎng)方案中提到,學(xué)生通過(guò)專業(yè)學(xué)習(xí)后,具備電子信息產(chǎn)品研發(fā)、生產(chǎn)管理、售后服務(wù)等崗位能力。STM32課程作為電子信息專業(yè)的一門專業(yè)核心課,學(xué)生掌握STM32編程的程度,決定學(xué)生以后就業(yè)的崗位的情況;在高職中如何能讓學(xué)生學(xué)習(xí)好STM32編程成為老師的一個(gè)難題。傳統(tǒng)的STM32實(shí)驗(yàn)教學(xué)編程都是使用寄存器編程或是函數(shù)庫(kù)編程的,這兩種實(shí)驗(yàn)編程的方法對(duì)我們高職的學(xué)生來(lái)說(shuō)都是很難學(xué)和理解的,首先寄存器的編程方法比較熟悉STM32單片機(jī)的寄存器,而單片機(jī)的型號(hào)不一樣,寄存器的類型也不一樣,這樣一來(lái)學(xué)生就得去記很多的寄存器;其次庫(kù)函數(shù)的編程方法,雖然ST公司做有很多的標(biāo)準(zhǔn)函數(shù)庫(kù),但去查找也是很難的,同時(shí)不同的公司也會(huì)做自己的函數(shù)庫(kù),這樣學(xué)生在使用的時(shí)候很難分清函數(shù)庫(kù)的調(diào)用情況。那有沒(méi)有有一種能讓我們高職的學(xué)生容易上手、容易理解的方法去學(xué)生STM32單片機(jī)呢?這就是本文將要闡述的STM32CubeMX圖形化編程。

1 STM32CubeMX簡(jiǎn)介

STM32CubeMX 是ST 意法半導(dǎo)體近幾年來(lái)大力推薦的STM32 芯片圖形化配置工具[5],直接由圖形界面簡(jiǎn)單配置下,生成初始化代碼,并對(duì)外設(shè)做了進(jìn)一步的抽象,讓開發(fā)人員更只專注應(yīng)用的開發(fā),可以大大減輕開發(fā)工作時(shí)間和費(fèi)用,提高開發(fā)效率[1]。STM32CubeMX幾乎覆蓋了STM32全系列芯片。在CubeMX上,通過(guò)傻瓜化的操作便能實(shí)現(xiàn)相關(guān)配置,最終能夠生成C語(yǔ)言代碼,支持多種工具鏈,比如MDK、IAR For ARM、TrueStudio等,省去了我們配置各種外設(shè)的時(shí)間,大大的節(jié)省了時(shí)間。

2 STM32單片機(jī)寄存器和庫(kù)函數(shù)編程

在當(dāng)前高校的電子類的專業(yè)高級(jí)的單片機(jī)編程基本上都是使用STM32單片機(jī),因?yàn)樗?2位的單片機(jī),在做系統(tǒng)或產(chǎn)品上它具有工作效率高、運(yùn)行速度快、成本低等特點(diǎn),都得到廣大師生的使用[3]。而目前多數(shù)的高校對(duì)STM32單片機(jī)的教學(xué)基本上使用寄存器編程教學(xué)或庫(kù)函數(shù)編程教學(xué)。

■2.1 STM32庫(kù)函數(shù)與寄存器開發(fā)流程

進(jìn)行具體的項(xiàng)目開發(fā)前,做好項(xiàng)目創(chuàng)建工作,通常包括如下步驟:

(1)新建工程項(xiàng)目的文件夾和子文件夾(如user、output、listing等);

(2)使用MDK新建(或打開項(xiàng)目),選擇目標(biāo)CPU、添加CMSIS核心、STM32啟動(dòng)代碼和外設(shè)驅(qū)動(dòng)程序,構(gòu)成運(yùn)行環(huán)境;

(3)添加包含main()函數(shù)的主程序文件;

(4)配置目標(biāo)選項(xiàng)。

■2.2 以閃爍的LED為例采用庫(kù)函數(shù)編程和寄存器編程的對(duì)比

(1)函數(shù)庫(kù)編寫閃爍LED部分函數(shù),如圖1所示。

圖1 函數(shù)庫(kù)編寫閃爍LED部分函數(shù)

(2)寄存器編寫閃爍LED部分函數(shù),如圖2所示。

圖2 寄存器編寫閃爍LED部分函數(shù)

STM32庫(kù)函數(shù)本質(zhì)上是對(duì)外設(shè)寄存器直接編程,只是為了方便應(yīng)用封裝成了函數(shù)。所以用戶的應(yīng)用程序也可以繞過(guò)庫(kù)函數(shù),直接對(duì)寄存器編程。直接對(duì)寄存器編程的代碼效率最高。不過(guò),需要花費(fèi)較多的時(shí)間學(xué)習(xí)和查閱STM32數(shù)據(jù)手冊(cè),這個(gè)過(guò)程繁瑣、易錯(cuò),難以移植。

3 STM32CubeMX圖形化編程

■3.1 使用STM32CubeMX開發(fā)流程

使用STM32CUberMX開發(fā)流程如下:

(1)在STM32CubeMX中直觀的配置MCU;

(2)生成開發(fā)工程;

(3)編寫功能代碼;

(4)配置目標(biāo)選項(xiàng)。

■3.2 使用STM32CubeMX圖形化編程實(shí)現(xiàn)閃爍的LED

(1)打開STM32CubeMX軟件,選擇ACCESS TO MCU SELECTOR新建工程,如圖3所示。

圖3 STM32CubeMX軟件界面

(2)選擇開發(fā)板的芯片及芯片的封裝類型,如圖4所示。

圖4 軟件界面芯片選擇

(3)選擇Pinout&Configuration菜單,點(diǎn)擊Categorier/System Core/SYS,在Mode下面對(duì)應(yīng)的選擇,完成之后在右邊的芯片就出現(xiàn)對(duì)應(yīng)的標(biāo)識(shí),如圖5所示。

圖5 SYS配置選項(xiàng)

(4)配置時(shí)鐘選項(xiàng),如圖6所示。

(5)配置芯片引腳輸入/輸出及其他特性(及LED2的連接引腳),如圖7所示。

圖6 時(shí)鐘選項(xiàng)

圖7 芯片引腳配置

(6)點(diǎn)擊Clock Configuration(時(shí)鐘源配置選項(xiàng)),對(duì)時(shí)鐘源進(jìn)行配置,如圖8所示。

圖8 時(shí)鐘源配置

(7)點(diǎn)擊Projiect Manager(工程管理)進(jìn)行配置,首先在界面選擇Project選項(xiàng),如圖9所示。

圖9 工程管理配置

其次,點(diǎn)擊Code Generator(代碼生成器)進(jìn)一步配置(重點(diǎn)),如圖10所示。

圖10 代碼生成器配置

(8)點(diǎn)擊GENERATE CODE創(chuàng)建工程,如圖11所示。

圖11 代碼生成界面

(9)點(diǎn)擊Open Projiect(打開工程),就自動(dòng)的關(guān)聯(lián)打開MDK-ARM V5軟件并創(chuàng)建工程保存在文件夾里,如圖12所示。

圖12 打開工程文件

(10)在MDK-ARM軟件里面找到main.c文件中主函數(shù)里的while循環(huán)語(yǔ)句添加兩句語(yǔ)句就可以實(shí)現(xiàn)閃爍的LED了,如圖13所示。

圖13 代碼修改界面

注意:所有自己編寫的代碼請(qǐng)放在/* USER CODE BEGIN XXX */ /* USER CODE END XXX */ 之間,這樣我們修改工程的時(shí)候你自己寫的代碼就不會(huì)被刪除。

4 總結(jié)

本文以STM32單片機(jī)控制閃爍的LED實(shí)驗(yàn)為例,分別以寄存器、庫(kù)函數(shù)和STM32CubeMX 三種編程開發(fā)模式去實(shí)現(xiàn)閃爍的LED控制。從編程過(guò)程我們發(fā)現(xiàn)寄存器和庫(kù)函數(shù)編程中都需要導(dǎo)入很多都文件,特別是IO口的初始化和時(shí)鐘的配置都是需要花費(fèi)很多的時(shí)間去理解;而使用STM32CubeMX圖形化編程,我們只需要簡(jiǎn)單的圖形化配置就可以完成代碼的生成及實(shí)現(xiàn)。通過(guò)多年的教學(xué)實(shí)驗(yàn),對(duì)三種STM32編程特點(diǎn)進(jìn)行了總結(jié)和對(duì)比,如表1所示。

表1 三種編程特點(diǎn)對(duì)比表

總之,在實(shí)踐教學(xué)中,我們使用STM32CubeMX圖形化編程開發(fā)做設(shè)計(jì),簡(jiǎn)單、易懂,學(xué)生的接受情況也比較好,相對(duì)之前的寄存器和庫(kù)函數(shù)編程教學(xué),取得了良好的效果。使用STM32CubeMX圖形化進(jìn)行配置,及使用HAL庫(kù)進(jìn)行開發(fā),這樣極大的縮短了新建工程的時(shí)間,而且時(shí)鐘配置和中斷配置都更加簡(jiǎn)單方便,更適合我們高職學(xué)生的學(xué)習(xí)。

猜你喜歡
寄存器圖形化時(shí)鐘
基于Arduino圖形化編程的教學(xué)應(yīng)用研究
淺談圖形化編程在小學(xué)教育中的作用
這個(gè)時(shí)鐘一根針
飛思卡爾單片機(jī)脈寬調(diào)制模塊用法研究
移位寄存器及算術(shù)運(yùn)算應(yīng)用
數(shù)字電路環(huán)境下汽車控制電路信號(hào)設(shè)計(jì)
有趣的時(shí)鐘
時(shí)鐘會(huì)開“花”
Mixly米思齊:優(yōu)秀的國(guó)產(chǎn)創(chuàng)客教育工具
如果你想,就可以做到更多!
获嘉县| 酒泉市| 方正县| 密云县| 咸阳市| 历史| 白朗县| 余干县| 龙陵县| 定州市| 宜春市| 渭南市| 油尖旺区| 彰武县| 明水县| 佳木斯市| 奉化市| 丹凤县| 盈江县| 大足县| 淮滨县| 普陀区| 秦皇岛市| 邢台县| 泸州市| 东阿县| 固安县| 旺苍县| 拜泉县| 盐津县| 木兰县| 东阿县| 吴忠市| 辽宁省| 荔浦县| 保德县| 全南县| 汕尾市| 海林市| 洛隆县| 张家港市|