999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CubeMx軟件的STM32單片機(jī)仿真實(shí)驗(yàn)方法

2024-01-02 02:28:52郭海如李幼鳳武云云胡緒龍
關(guān)鍵詞:單片機(jī)用戶實(shí)驗(yàn)

孔 霞,郭海如,李幼鳳,萬 興,武云云,胡緒龍

(湖北工程學(xué)院 計(jì)算機(jī)與信息科學(xué)學(xué)院,湖北 孝感 432000)

Proteus 軟件[1-3]是英國 Labcenter electronics 公司研發(fā)的 EDA工具軟件,由 ISIS(原理圖設(shè)計(jì)與仿真平臺(tái))、高級(jí)布線和編輯軟件平臺(tái)(advanced routing and editing software,ARES)組成,能夠在計(jì)算機(jī)上完成從原理圖設(shè)計(jì)、 電路分析與仿真、單片機(jī)代碼調(diào)試與仿真、系統(tǒng)測試與功能驗(yàn)證到 PCB 板生成的完整電子產(chǎn)品研發(fā)過程。Proteus 是目前唯一將電路仿真軟件、PCB 設(shè)計(jì)軟件和虛擬模型仿真軟件進(jìn)行三合一的一個(gè)設(shè)計(jì)平臺(tái),它支持多種處理器類型。在編譯方面,Proteus支持IAR、Keil和MPLAB等多種編譯器。傳統(tǒng)的單片機(jī)仿真實(shí)驗(yàn)平臺(tái)結(jié)合使用 Proteus 軟件和Keil 軟件[4-6],該方法可以設(shè)計(jì)多種類型的實(shí)驗(yàn)項(xiàng)目,擴(kuò)展普通實(shí)驗(yàn)箱無法完成的大型綜合實(shí)驗(yàn)項(xiàng)目,降低實(shí)驗(yàn)室的建設(shè)和維護(hù)成本。然而,該方法在實(shí)踐項(xiàng)目開發(fā)過程中涉及到很多匯編語言文件,項(xiàng)目開發(fā)文件的零散建立方式繁瑣且容易出錯(cuò)。本文在傳統(tǒng)的 Proteus和Keil 仿真實(shí)驗(yàn)平臺(tái)中加入CubeMx軟件[7-8],該軟件用圖形化方法生成工程項(xiàng)目的初始化程序文件,可以避免大量的程序初始化工作,大量減少了用戶的進(jìn)行單片機(jī)開發(fā)、創(chuàng)新的工作量。該方法可以使單片機(jī)的應(yīng)用、開發(fā)和設(shè)計(jì)過程避免匯編語言的參與,對初學(xué)者更加友好,降低了單片機(jī)開發(fā)和設(shè)計(jì)的門檻。

本文的STM32單片機(jī)仿真實(shí)驗(yàn)方法摒棄用匯編語言開發(fā)單片機(jī)的理念,在基于 Proteus和Keil 的仿真實(shí)驗(yàn)平臺(tái)中引入 CubeMx,利用圖形化方法生成工程項(xiàng)目的初始化 C 程序文件。CubeMx 是一款圖形化軟件設(shè)置工具,使用圖形化向?qū)砩?C 初始化代碼文件,用戶僅需編寫具體案例所需的子函數(shù)即可,能夠減少用戶的編程工作量、規(guī)范各個(gè)部件的初始化過程以及流程。新方法可以引導(dǎo)用戶快速入門和上手,在開發(fā)過程中可以規(guī)范項(xiàng)目初始化文件以及開發(fā)流程,幫助用戶更加流暢、有規(guī)劃地進(jìn)行單片機(jī)的開發(fā)和設(shè)計(jì)。因此,筆者所在學(xué)校線上、線下混合式單片機(jī)課程線上課程擬采用Proteus、Keil 和CubeMx軟件仿真STM32[7-13]系列單片機(jī),并以全國大學(xué)生藍(lán)橋杯競賽、智能汽車競賽為著力點(diǎn)(嵌入式競賽以STM32 單片機(jī)作為考核對象),該實(shí)驗(yàn)仿真與后續(xù)實(shí)物實(shí)踐所實(shí)現(xiàn)的功能完全一致,仿真實(shí)驗(yàn)與實(shí)踐實(shí)驗(yàn)環(huán)環(huán)相扣,可以逐步增強(qiáng)工程實(shí)踐要求,提升同學(xué)動(dòng)手、動(dòng)腦能力,擴(kuò)展學(xué)生的視野,能夠大膽創(chuàng)新。這種模式的仿真、實(shí)踐實(shí)驗(yàn)相結(jié)合側(cè)重實(shí)踐和創(chuàng)新能力的開發(fā),為相關(guān)的學(xué)科競賽創(chuàng)新做了很好的鋪墊。

1 基于CubeMx軟件的仿真

利用Proteus、Keil和CubeMx軟件,設(shè)計(jì)并實(shí)現(xiàn)了一種新的單片機(jī)仿真方法。其中,Proteus是普遍適用的EDA工具,是集電路仿真、PCB設(shè)計(jì)和虛擬模型為一體的設(shè)計(jì)平臺(tái)。CubeMX是一款圖形化軟件設(shè)置工具,允許使用圖形化向?qū)砩蒀初始化代碼,用戶僅需編寫一些具體案例所需的子函數(shù)即可,它能夠減少和規(guī)范各個(gè)部件的初始化過程以及流程。本文以串口通信實(shí)驗(yàn)為實(shí)例,闡述CubeMX、Keil和Proteus在STM32系列單片機(jī)實(shí)驗(yàn)實(shí)踐中的應(yīng)用,具體對STM32F103R6款芯片進(jìn)行系統(tǒng)的仿真和程序設(shè)計(jì)。本文實(shí)例可以直接應(yīng)用于藍(lán)橋杯競賽中,也可以推廣到單片機(jī)到其他應(yīng)用領(lǐng)域。

2 具體的特色實(shí)驗(yàn)案例設(shè)計(jì)

以“STM32串口”實(shí)驗(yàn)為例,介紹如何使用CubeMX配置STM32串口操作初始化文件。然后根據(jù)實(shí)驗(yàn)設(shè)計(jì)完成相關(guān)的程序編碼,并在Proteus中進(jìn)行仿真運(yùn)行和驗(yàn)證,完成線上仿真實(shí)驗(yàn)后用戶能夠通過實(shí)物焊接電板進(jìn)行藍(lán)橋杯競賽和智能汽車競賽的創(chuàng)新實(shí)踐。STM32串口實(shí)驗(yàn)中,通過通過虛擬串口軟件連接Proteus中的STM32和串口助手,編碼從STM32發(fā)送信息,在串口助手上查看接收字符;在串口助手中發(fā)送字符串到開發(fā)板,在LCD中顯示相應(yīng)的字符串信息。

2.1 仿真電路設(shè)計(jì)

這里實(shí)例選擇STM32芯片型號(hào):STM32F103R6,串口實(shí)驗(yàn)原理圖如圖1所示。硬件部分由PA2、PA3引腳作為系統(tǒng)的外部中斷線,PB8、PB9、PB10、PB11和PB12作為LCD顯示輸出線,完成字符的傳輸和顯示。

2.2 軟件設(shè)計(jì)和配置

在總體的原理設(shè)計(jì)之后,建立項(xiàng)目工程所需的流程化和規(guī)范化的項(xiàng)目文件,就是以下所述的步驟 1和步驟 2實(shí)現(xiàn)的內(nèi)容。步驟 3是具體串口收發(fā)信息時(shí)對每個(gè)字符進(jìn)行實(shí)時(shí)處理的流程和實(shí)施方法、設(shè)置說明。軟件仿真設(shè)計(jì)的總體流程圖如圖2所示,具體實(shí)施步驟、設(shè)置內(nèi)容見步驟 3中的1) ~ 6)。

圖2 總體流程圖

步驟1 CubeMX配置。在實(shí)驗(yàn)配置中,LCD液晶屏需要加載驅(qū)動(dòng)文件,時(shí)鐘源選擇內(nèi)部高速時(shí)鐘,除了串口配置之外,其他配置和Proteus和Keil 中的LED燈實(shí)驗(yàn)配置一致。具體如下:1)啟動(dòng)CubeMX軟件,新建工程并命名;2)依據(jù)原理圖中的處理器,選擇型號(hào)為STM32F103R6的處理器;3)配置時(shí)鐘源及端口在時(shí)鐘樹選擇內(nèi)部晶振作為高效時(shí)鐘;4)配置串口USART2,波特率設(shè)為19200,數(shù)據(jù)流向設(shè)為發(fā)送信號(hào)和接收信號(hào),同時(shí)配置中斷分組和串口中斷優(yōu)先級(jí),將UASRT2全域中斷的優(yōu)先級(jí)設(shè)為1;5)設(shè)置工程輸出配置參數(shù),自動(dòng)生成代碼,打開建好的工程文件,進(jìn)入工程后打開main函數(shù)所在的文件夾。

步驟2 工程移植。將LCD的驅(qū)動(dòng)文件“l(fā)cd.c”、“l(fā)cd.h”和“ascii.h”復(fù)制到工程相關(guān)的文件夾,將其中的.c文件加載到工程中。

步驟3 編程實(shí)現(xiàn)。

1) 在main.c源程序文件中的添加預(yù)處理命令包含LCD相關(guān)的頭文件,進(jìn)行LCD初始化,具體參照圖3,其中第108行代碼開啟串口接收中斷,用戶可以在所建工程的main.c目錄下找到相應(yīng)的頭文件。第109行代碼是用戶自己編寫所需傳送的字符的函數(shù),用戶可依據(jù)需要編寫和修改該函數(shù),但是應(yīng)當(dāng)有等待發(fā)送完成、檢查字符結(jié)束標(biāo)志等。

圖3 LCD初始化設(shè)置程序

2) 建立編寫所需發(fā)送信息的函數(shù),如圖3所示,第109行代碼是用戶自己編寫所需傳送的字符的函數(shù)的調(diào)用,通過調(diào)用該函數(shù)實(shí)現(xiàn)數(shù)據(jù)的發(fā)送,用戶可依據(jù)需要編寫和修改該函數(shù),但是應(yīng)當(dāng)有“等待發(fā)送完成”、“檢查字符串結(jié)束標(biāo)志”等。

等待接收完成可以通過判斷全局變量標(biāo)志位RXOVER 實(shí)現(xiàn),接收完成后,標(biāo)志位RXOVER需要在main函數(shù)中清零,以便下次使用,核心代碼如下。

/* USER CODE BEGIN WHILE */

while (1)

{if(RXOVER==1) //接收是否完成

{ LCD_Disp_Strings(LCD_PAGE6, 5, (uint8_t*)USART_RXBUF, 15, BACK_REVERSE);

/清空接收緩沖區(qū)

RXOVER=0; //清除接收標(biāo)志

HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE);//使能接收中斷

}

/* USER CODE END WHILE */

3) 編寫中斷服務(wù)程序,串口的接收相關(guān)函數(shù)查找方法如上所述,實(shí)例中,中斷文件中變量的定義和服務(wù)程序如圖4所示。

圖4 中斷文件變量的定義與中斷服務(wù)程序

接收字符完成時(shí),需要在中斷服務(wù)程序中對RXOVER置“1”,接收中斷服務(wù)程序流程如圖5所示,中斷服務(wù)程序核心代碼如下。

圖5 接收中斷服務(wù)程序流程圖

/* USER CODE BEGIN USART2_IRQn 1 */

HAL_UART_Receive_IT(&huart2,(uint8_t *)aRxBuffer,1);//串口接收,每次接收1位

if(接收完成)

{ RXCUNT=0;//接收緩沖區(qū)字節(jié)數(shù)清“0”

RXOVER=1;// 接收完成標(biāo)志位置“1”;

}

else

{ 接收字符;

++RXCUNT; //接收緩沖區(qū)字節(jié)數(shù)+1

}

/* USER CODE END USART2_IRQn 1 */

4) 編譯鏈接,編譯鏈接之后,已經(jīng)將.hex文件加載到Proteus中,還需要設(shè)置其中的串口和終端波特率為19200。

5) 安裝虛擬串口,增加虛擬串口。

6) 打開串口助手,選擇端口號(hào)并設(shè)置波特率為19200,串口打開后,指示燈變?yōu)榧t色。

3 仿真實(shí)驗(yàn)結(jié)果與討論

仿真實(shí)驗(yàn)運(yùn)行后,能夠在虛擬終端接收到編程需要發(fā)送的字符。實(shí)例仿真中,輸入單個(gè)字符6次后,液晶屏能夠看到接收到的5個(gè)字符(輸入的最后一個(gè)是終止符),結(jié)果如圖6所示。

圖6 虛擬仿真實(shí)驗(yàn)結(jié)果顯示

案例處理字符串時(shí)采用單個(gè)字符處理方式,可以嘗試直接采用字符串的方式進(jìn)行串口發(fā)送接收。

參考代碼如下:

uint8_t rx[100];

char str[40];

sprintf(str, "Welcome to HBEU ");

HAL_UART_Transmit(&huart2,(unsigned char *)str, strlen(str), 50);

HAL_Delay(500);

HAL_UART_Receive_IT(&huart2, rx, 5);

4 結(jié)語

本文采用Proteus、Keil和CubeMx相結(jié)合,避免了和匯編語言在開發(fā)單片機(jī)時(shí)的直接應(yīng)用,并且利用CubeMX圖形化方法使整個(gè)單片機(jī)的開發(fā)過程規(guī)范化、流程化,用戶只需要對應(yīng)不同的案例實(shí)踐編寫相關(guān)的C源程序就可以完成整個(gè)單片機(jī)的開發(fā)和實(shí)現(xiàn)。本文將Proteus、Keil和CubeMx相結(jié)合進(jìn)行STM32仿真引入單片機(jī)實(shí)驗(yàn)課堂在全國屬于首創(chuàng),筆者所在學(xué)校相應(yīng)的“單片機(jī)原理及應(yīng)用”線上、線下混合課程也已經(jīng)上線。該方法的線上課程采用標(biāo)準(zhǔn)庫,幫助深入理解驅(qū)動(dòng)程序原理,Proteus、Keil和CubeMx仿真與后續(xù)實(shí)物實(shí)踐所實(shí)現(xiàn)的功能能夠做到完全一致,仿真與實(shí)踐環(huán)環(huán)相扣,互為補(bǔ)充,這種新的仿真方法響應(yīng)國家工程認(rèn)證教育號(hào)召,加強(qiáng)工程訓(xùn)練,提升大學(xué)生創(chuàng)新、創(chuàng)造能力。

本文的仿真實(shí)驗(yàn)方法降低了單片機(jī)開發(fā)的門檻,使得單片機(jī)的開發(fā)更加規(guī)范、易操作且易理解,激發(fā)了廣大學(xué)生群體的興趣,使得單片機(jī)的創(chuàng)新、創(chuàng)造變得更加簡易。本文通過STM32串口實(shí)驗(yàn)實(shí)例具體展示了Proteus、Keil和CubeMx的STM32系列單片機(jī)仿真實(shí)驗(yàn)的單片機(jī)外圍硬件設(shè)計(jì)(文中主要是LCD)、軟件設(shè)計(jì)、設(shè)置和仿真調(diào)試的整個(gè)過程。在實(shí)踐過程中,基于Proteus、Keil和CubeMx的STM32系列單片機(jī)實(shí)驗(yàn)在線上、線下混合課程中取得了較好的效果和反響,使低年級(jí)學(xué)生和非本專業(yè)學(xué)生能動(dòng)手實(shí)際編程完成實(shí)踐任務(wù),還可以利用所學(xué)知識(shí)進(jìn)行創(chuàng)新性的設(shè)計(jì)和開發(fā),參加全國藍(lán)橋杯競賽、智能汽車競賽。該仿真系統(tǒng)已經(jīng)在為筆者所在學(xué)校參加藍(lán)橋杯競賽、智能汽車競賽服務(wù),學(xué)校獲得了藍(lán)橋杯全國 “優(yōu)勝學(xué)?!睒s譽(yù)稱號(hào),時(shí)至今日學(xué)生贏得智能車全國總決賽特等獎(jiǎng)2項(xiàng),全國總決賽一等獎(jiǎng)7項(xiàng),相信在未來越來越多的學(xué)科競賽中我們能夠取得越來越好的競賽成績。

猜你喜歡
單片機(jī)用戶實(shí)驗(yàn)
記一次有趣的實(shí)驗(yàn)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
做個(gè)怪怪長實(shí)驗(yàn)
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
實(shí)踐十號(hào)上的19項(xiàng)實(shí)驗(yàn)
太空探索(2016年5期)2016-07-12 15:17:55
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 欧美日韩亚洲综合在线观看| AV老司机AV天堂| 亚洲成人在线免费观看| 久久国产精品国产自线拍| 波多野结衣国产精品| 国产午夜人做人免费视频中文| 毛片免费网址| 亚洲精品日产精品乱码不卡| 欧美亚洲国产一区| 免费高清毛片| 777国产精品永久免费观看| 国产精品护士| 国产96在线 | 国产乱人免费视频| 91精品网站| 九九热精品免费视频| 亚洲成人网在线播放| 福利在线不卡| 婷婷六月在线| 高清久久精品亚洲日韩Av| 亚洲成网777777国产精品| 欧美成人一级| 一本大道AV人久久综合| 色哟哟国产精品一区二区| 在线观看国产黄色| 国产a网站| 国产亚洲欧美在线人成aaaa| 激情成人综合网| 日韩在线播放中文字幕| 国产无人区一区二区三区| 亚洲精品免费网站| 欧美日韩动态图| 久久综合结合久久狠狠狠97色 | 久久婷婷综合色一区二区| 五月丁香伊人啪啪手机免费观看| 蝴蝶伊人久久中文娱乐网| 99精品在线看| 日本免费a视频| 国产第一页亚洲| 尤物在线观看乱码| 国产成人综合亚洲网址| 亚洲无线一二三四区男男| 国产网站免费| 亚洲三级视频在线观看| 欧美午夜理伦三级在线观看| 久久久久久久久18禁秘| 亚洲一区毛片| 四虎成人精品| 亚洲欧美激情小说另类| 亚洲成a人在线观看| 免费A级毛片无码免费视频| 日韩精品无码免费一区二区三区 | 一区二区三区国产精品视频| 国产三区二区| 波多野结衣亚洲一区| 国产精品成人不卡在线观看| 国产精品自在拍首页视频8 | 国产午夜小视频| 91热爆在线| 人人爱天天做夜夜爽| 国产小视频网站| 夜色爽爽影院18禁妓女影院| 91成人精品视频| 在线国产欧美| 国产内射一区亚洲| 亚洲黄网视频| 国产高清在线精品一区二区三区| 欧美精品啪啪一区二区三区| 欧美人人干| 国产尤物在线播放| 国产精品视频999| 日韩一二三区视频精品| 精品国产三级在线观看| 日韩av高清无码一区二区三区| 国模沟沟一区二区三区| 国产乱人视频免费观看| 色精品视频| 免费全部高H视频无码无遮掩| 婷婷综合缴情亚洲五月伊| 在线播放国产99re| 性欧美在线| 亚洲国产成人在线|