亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2024-01-02 02:28:52郭海如李幼鳳武云云胡緒龍
        湖北工程學院學報 2023年6期
        關(guān)鍵詞:字符中斷串口

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

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

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

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

        1 基于CubeMx軟件的仿真

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

        2 具體的特色實驗案例設(shè)計

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

        2.1 仿真電路設(shè)計

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

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

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

        圖2 總體流程圖

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

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

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

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

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

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

        等待接收完成可以通過判斷全局變量標志位RXOVER 實現(xiàn),接收完成后,標志位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; //清除接收標志

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

        }

        /* USER CODE END WHILE */

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

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

        接收字符完成時,需要在中斷服務(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;// 接收完成標志位置“1”;

        }

        else

        { 接收字符;

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

        }

        /* USER CODE END USART2_IRQn 1 */

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

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

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

        3 仿真實驗結(jié)果與討論

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

        圖6 虛擬仿真實驗結(jié)果顯示

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

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

        猜你喜歡
        字符中斷串口
        尋找更強的字符映射管理器
        淺談AB PLC串口跟RFID傳感器的通訊應用
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計
        電子制作(2019年19期)2019-11-23 08:41:50
        消失的殖民村莊和神秘字符
        跟蹤導練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        基于并行控制的FPGA多串口拓展實現(xiàn)
        男男啪啪激烈高潮cc漫画免费| 亚洲成aⅴ人在线观看| 2021年国产精品每日更新| 日本高清中文字幕二区在线| 日本成人精品在线播放| 久热re这里精品视频在线6| 亚洲精品一区二区三区大桥未久| 亚洲中文字幕巨乳人妻 | 超碰性爱| 国产精品毛片av一区二区三区| 亚洲国产精品久久又爽av| 伦伦影院午夜理论片| 国产xxxx99真实实拍| 国产99页| 午夜视频在线观看日本| av无码国产精品色午夜| 久久夜色精品国产噜噜av| 亚洲一区二区自拍偷拍| 蜜桃传媒免费观看视频| 免费国产在线精品一区| 三上悠亚av影院在线看| av无码特黄一级| 熟女人妻在线中文字幕| 男ji大巴进入女人的视频小说| 99国产精品视频无码免费| 91大神蜜桃视频在线观看| 亚洲最大中文字幕熟女| 天堂aⅴ无码一区二区三区| 日韩丝袜亚洲国产欧美一区| 亚洲女同性恋第二区av| 国产精品99精品久久免费| 亚洲国产高清在线观看视频| 婷婷成人亚洲综合国产| 青青草小视频在线播放| 国产成年女人毛片80s网站| 99久久精品自在自看国产| 99久久这里只精品国产免费| 中文字幕一区二区三区在线看一区| 日本饥渴人妻欲求不满| 亚洲av男人的天堂在线观看| 欧美洲精品亚洲精品中文字幕|