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

基于CubeMx軟件的STM32單片機仿真實驗方法

2024-01-02 02:28:52郭海如李幼鳳武云云胡緒龍
湖北工程學院學報 2023年6期
關鍵詞:單片機用戶實驗

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

(湖北工程學院 計算機與信息科學學院,湖北 孝感 432000)

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

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

1 基于CubeMx軟件的仿真

利用Proteus、Keil和CubeMx軟件,設計并實現了一種新的單片機仿真方法。其中,Proteus是普遍適用的EDA工具,是集電路仿真、PCB設計和虛擬模型為一體的設計平臺。CubeMX是一款圖形化軟件設置工具,允許使用圖形化向導來生成C初始化代碼,用戶僅需編寫一些具體案例所需的子函數即可,它能夠減少和規范各個部件的初始化過程以及流程。本文以串口通信實驗為實例,闡述CubeMX、Keil和Proteus在STM32系列單片機實驗實踐中的應用,具體對STM32F103R6款芯片進行系統的仿真和程序設計。本文實例可以直接應用于藍橋杯競賽中,也可以推廣到單片機到其他應用領域。

2 具體的特色實驗案例設計

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

2.1 仿真電路設計

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

2.2 軟件設計和配置

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

圖2 總體流程圖

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

步驟2 工程移植。將LCD的驅動文件“lcd.c”、“lcd.h”和“ascii.h”復制到工程相關的文件夾,將其中的.c文件加載到工程中。

步驟3 編程實現。

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

圖3 LCD初始化設置程序

2) 建立編寫所需發送信息的函數,如圖3所示,第109行代碼是用戶自己編寫所需傳送的字符的函數的調用,通過調用該函數實現數據的發送,用戶可依據需要編寫和修改該函數,但是應當有“等待發送完成”、“檢查字符串結束標志”等。

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

/* USER CODE BEGIN WHILE */

while (1)

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

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

/清空接收緩沖區

RXOVER=0; //清除接收標志

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

}

/* USER CODE END WHILE */

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

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

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

圖5 接收中斷服務程序流程圖

/* USER CODE BEGIN USART2_IRQn 1 */

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

if(接收完成)

{ RXCUNT=0;//接收緩沖區字節數清“0”

RXOVER=1;// 接收完成標志位置“1”;

}

else

{ 接收字符;

++RXCUNT; //接收緩沖區字節數+1

}

/* USER CODE END USART2_IRQn 1 */

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

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

6) 打開串口助手,選擇端口號并設置波特率為19200,串口打開后,指示燈變為紅色。

3 仿真實驗結果與討論

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

圖6 虛擬仿真實驗結果顯示

案例處理字符串時采用單個字符處理方式,可以嘗試直接采用字符串的方式進行串口發送接收。

參考代碼如下:

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 結語

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

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

猜你喜歡
單片機用戶實驗
記一次有趣的實驗
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
做個怪怪長實驗
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 毛片在线看网站| 久久午夜影院| 免费在线a视频| 国产第八页| 欧美激情视频二区三区| 久久精品66| 日本免费高清一区| 欧美中文字幕无线码视频| 久久精品丝袜高跟鞋| 亚洲av无码牛牛影视在线二区| 国产精品美女网站| 久久久波多野结衣av一区二区| 国产欧美网站| 国产精品林美惠子在线播放| 日韩毛片在线播放| 在线观看精品自拍视频| 免费99精品国产自在现线| 成人免费一区二区三区| 91探花在线观看国产最新| 中文字幕 91| 在线免费亚洲无码视频| 美女被狂躁www在线观看| 无码精油按摩潮喷在线播放 | 日韩AV无码免费一二三区| 女人爽到高潮免费视频大全| 中文字幕免费在线视频| 成人在线欧美| 国产精品免费露脸视频| 亚洲av片在线免费观看| 欧美日韩国产精品综合| 午夜日b视频| 久草性视频| 青青热久麻豆精品视频在线观看| 国产又粗又猛又爽视频| 亚洲av无码人妻| 色欲综合久久中文字幕网| 97国产精品视频自在拍| 22sihu国产精品视频影视资讯| 亚洲精品麻豆| 91精品久久久无码中文字幕vr| 老司机午夜精品网站在线观看| 被公侵犯人妻少妇一区二区三区| 国产波多野结衣中文在线播放| 在线a网站| 国产亚洲精| 精品黑人一区二区三区| 一级在线毛片| 国产精品欧美在线观看| 国语少妇高潮| 青青青视频免费一区二区| 日韩欧美色综合| 国产成人精品亚洲77美色| 国产精品一区在线麻豆| 性色一区| 在线国产你懂的| 国产性生交xxxxx免费| 欧美成人看片一区二区三区 | 在线观看网站国产| 婷婷丁香在线观看| 亚洲av无码片一区二区三区| 色网站免费在线观看| 精品国产aⅴ一区二区三区| 亚洲第一成人在线| 喷潮白浆直流在线播放| 国产Av无码精品色午夜| 91免费片| 青青草欧美| 亚洲综合经典在线一区二区| 国产成人一二三| 亚洲三级视频在线观看| 亚洲小视频网站| 欧美影院久久| 91无码视频在线观看| 亚洲AV一二三区无码AV蜜桃| 日韩在线第三页| 欧美日在线观看| 亚洲视频三级| 九九热精品免费视频| 日韩精品中文字幕一区三区| 色AV色 综合网站| 亚洲va在线∨a天堂va欧美va| 免费啪啪网址|