《SLAM導航機器人基礎》第三章:單片機與STM32:單片機概述和Keil開發環境配置


3.1 單片機概述

我們在第一章中了解了單片機概念,我們同學在大學中也會有單片機課程,一般選型經典的51單片機。單片機的處理器頻率為8M,72M,168M等,處理器頻率指的是處理器時鍾頻率,由此可得8M,72M,168M頻率處理器的時鍾周期分別為125us、13.8us、5.9us。假如我們有一條C++語句,最終需要10個時鍾周期,則該語句耗時1250us、138us、59us。若我們運行1000行這樣的語句,則需要1.25秒、0.138秒、0.059秒。由此可見,單片機處理速度較慢,適合處理任務負荷低的任務,同時要求我們程序盡量簡潔,邏輯設計合理。除了頻率,單片機的位數也不一樣。有8位、16位、32位。8位指的是8個二進制位,可以表達數值0~255。我們常用的是十進制,逢十進一。但在計算機領域,常用的是二進制,逢二進一。8位二進制數,最大為11111111(二進制表示),等於255(十進制表示)。8位單片機,指的是該單片機,一次只能處理8位數據。單片機課程使用的8051是8M,8位單片機。目前機器人主流使用的是STM32系列的32位單片機,其中F1系列頻率為72M,F4系列為168M。我們教程以STM32F103VET6芯片(若想了解型號具體含義,可搜索stm32芯片命名規則)舉例。STM32F103VET6(32位,72M,100管腳,512KB ROM,64KB RAM)小批量價格為17元,STM32F407VET6(32位,168M,100管腳,512KB ROM,64KB RAM)小批量價格為26元。ROM,相當於計算機的硬盤,RAM則相當於內存。我們的程序存儲在ROM中,程序運行產生的數據,比如變量等,存儲在RAM。在盡可能低價格的硬件上實現同樣的功能,是工程師必備的追求。

單片機開發,需准備開發環境:編譯器軟件、硬件電路板、編譯下載器等。本章學習內容開發配件為:Keil5、ST-Link v2下載器、CHEAPX機器人控制板。

Keil編譯器,是一款強大並且流行的單片機編譯器軟件,可將我們的程序編譯成二進制文件,keil的調試功能非常強大。除了keil,還有一款編譯器是IAR,相對小眾一些。ST-Link v2下載器,可用於將二進制文件下載至單片機中,也可用於在線調試。

單片機學習板,國內的正點原子做得很不錯,配套資料齊全、例程豐富,學習論壇人氣很旺。不過,由於產品定性為單片機學習板,沒有電機接口、沒有驅動器等,只能運行單個外設的簡單例程,難以深入了解實際的工程開發。有些淘寶上賣的項目控制板具備電機接口,但沒有開放源代碼,配套學習例程,新手難以作為學習板,同時沒有超聲波和碰撞傳感器接口,傳感器接口不完整。本教程期望中的單片機學習板,既有豐富的外設讓剛入門單片機的同學們學習,學習以后又能設計作品,在實際的機器人開發項目中真正掌握單片機開發技術。CHEAPX機器人控制板,價格比正點原子開發板低很多,配備6軸IMU傳感器、7W電機驅動器,串口USB,CAN,蜂鳴器,12V鋰電池輸口,碰撞傳感器和超聲波測距傳感器接口各5路,5V3A USB電源輸出,可為樹莓派等算法板提供充足電力。本教程以其作為學習板,並在后續教程中,使用該控制板制作SLAM機器人。有興趣的同學可在以下店鋪購買:

https://shop232938673.taobao.com/category-1535592140.htm?spm=a1z10.1-c-s.0.0.4bb04117pbDnKj&search=y&parentCatId=1535592138&parentCatName=%BB%FA%C6%F7%C8%CB%D7%E9%BC%FE&catName=%BF%D8%D6%C6%C6%F7

 

 

我們這一章推薦的課外學習資料是正點原子,包括網盤資料,論壇。

正點原子的網盤資料鏈接: https://pan.baidu.com/s/11Ze2WRbC6UA7qfTnILFhLw 提取碼:2067

論壇鏈接:http://www.openedv.com/forum.php

 

3.2 Keil開發環境

3.2.1 下載與安裝keil

1.打開上節的正點原子的網盤資料鏈接: https://pan.baidu.com/s/11Ze2WRbC6UA7qfTnILFhLw 提取碼:2067

下載網盤目錄 6.軟件資料.zip

 

 2.下載后解壓,如下圖,打開MDK5文件夾

 

 3.MDK文件夾內容入下圖,按照文件夾內的文件“安裝過程”操作

 

 4.安裝mdk_514.exe

 

4.1雙擊打開mdk514,點next

 

 

4.2勾選同意后next

 

 

 4.3選擇安裝目錄,pack包目錄后next

 

  4.4 填寫信息后,可認真填也可隨意寫,然后點擊next

  4.5 等待安裝,然后點擊next

 

 

 4.6安裝完成后,點Finish

 

 4.7 上一步完成后,我們已經完成keil軟件的安裝,下面安裝文件夾中的Keil.STM32F1xx_DFP.1.0.5,這是一個包含STM32F1芯片信息的包,雙擊點擊Next即可

 

 4.8等待安裝完成后點finish

 

 

 

 4.9 至此,軟件全部安裝完畢,下面進行注冊。keil是外國軟件,並非免費軟件。

注冊方法:http://www.openedv.com/thread-69384-1-1.html

 

3.2.2Keil介紹

如下圖所示:Keil界面,分為3個窗口:工程窗口(工程文件)、編輯窗口(代碼編輯)和輸出窗口(編譯信息和下載信息)。在快捷工具欄有文件工具、編譯快捷鍵、編輯工具、調試工具。

 

 此外,還有項目管理窗口(用於快速增刪項目文件)和選項窗口(用於設置芯片、下載器,編譯信息等),如下2圖。

 

 

 

 

3.2.3 使用keil新建工程與下載

 步驟1:新建工程文件夾,並在工程文件夾內添加如下圖所示的文件夾和文件。Driver用於存放我們開發的驅動源文件,如串口驅動等;MAIN目錄,存放Keil工程文件和STM配置相關的文件;OUTPUT存放Keil輸出文件,如16進制Hex文件;ST存放STM32芯片庫文件;CHANGLOG文件,用於填寫該工程的版本,維護信息

 

 步驟2:在ST目錄下添加以下文件:

 步驟3:在MAIN目錄下添加以下文件:

 

 步驟4:工程文件准備完畢,現在打開Keil軟件,選擇Project->New uVersion Project...,然后打開MAIN目錄,命名工程名為並點保存。

 步驟5:在新項目中添加加載工程文件,打開工程管理窗口如下圖:

 

步驟6:編輯工程管理窗口內容,如下圖,最左側欄是工程名,中間欄為文件夾欄,右側欄是文件欄。編輯完成點擊OK退出。

 

 配置完成后,工程窗口如下圖所示。

 

 

步驟7:打開工程選項窗口,選擇Device->STMicroelectronics->STM32F1 Series->STM32F103->STM32F103VE,如下圖。

步驟8:繼續在工程選項窗口,選擇Output,點擊Select Folder for Object並選擇OUTPUT目錄,勾選Greate HEX file,在如下圖。

 

 

步驟9:繼續在工程選項窗口,選擇Linker,在下拉列表中選擇ST-Link Debugger,如下圖。

 

 

步驟10:繼續在工程選項窗口,選擇C/C++,選擇include,添加頭文件目錄,如下圖。

 

 

步驟11:頭文件目錄如下圖,這是告訴編譯器在哪尋找頭文件。

 

 

步驟12:工程配置完成,我們可以點擊編譯,在輸出窗口,查看工程編譯是否正確,編譯完成,使用ST-Link連接控制板,並給板子上電,點擊下載就可以把程序下載進單片機了。我們備份該配置好原始工程,以后新項目就可以直接使用了。Keil的下載和調試,我們在后面示例中再做介紹。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM