?
目錄
什么是嵌入式?
認識STM32單片機?
開發環境安裝
安裝開發環境
開發板資源介紹
單片機開發模式?
創建工程的方式
燒錄STM32程序
什么是嵌入式?
1.智能手環項目
? ? ? ? ? ? ? ? ??
主要功能有:
彩色觸摸屏 顯示時間 健康信息:心率,心跳,血氧等 鬧鐘 記錄跑步數據 NFC刷公交,地鐵,門禁 藍牙連接手機接收信息等等 ?
智能手環整體框圖設計:
2.智能門禁項目
? ? ? ? ? ? ? ? ???
主要功能有: 顯示屏 RDIF開鎖開鎖 指紋開鎖 按鍵密碼開鎖 人臉識別開鎖等功能
智能門禁整體功能框圖:
認識STM32單片機?
STM32是單片機,它由意法半導體制造。ST是意法半導體的簡稱,M指的是微控制器,也 就是MCU的第一個英文。32指的是32位的CPU,32是指32位的CPU,它的CPU是采用 ARM公司的Cortex-m系列的內核設計。 學習STM32單片機可以訪問兩個官網,一個是意法半導體官網和STM32系列單片機的官 網,其中Cortex-M后面的數字越大性能越好。
以STM32F103C8T6為例:
????????stm32是家族名,還有stm8,32和8的區別就是CPU處理數據的位數不一樣,而且32采 用的是ARM公司的Cortex-M系列的內核,8是意法半導體自主研發的CPU內核。 ?
????????F指的是產品類別,它是屬于基礎型,還有汽車A級,超低功耗L等類型。
????????103這三個數字是指特點的功能,它指STM32的基礎型,還有051入門級等等。
????????C指的是STM32的引腳數量,不同的大寫字母代表的不同的引腳數,C代表48引腳。
????????8是指STM32的閃存(flash)大小,也就是放代碼空間的大小,8指閃存大小是 64KB。
????????T指的是芯片的封裝形式QFP。
????????6指的是芯片的工作環境的溫度-40°到+85°。
開發環境安裝
安裝開發環境
1.安裝MDK(keil)
Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。 ????目前軟件對中文的支持不友好,不建議安裝網上的一些漢化包之類的。另外建立的工程文件路徑也盡量不要存在中文,否則可能會出現一些異常。
2.安裝芯片包stm32f1xx
開發板資源介紹
1.原理圖
用來表示電路板上各個元器件直接的連接原理的圖表不同設計人員表示的方法有差異,沒有統一的標準
在產品調試,維修以及改進過程中有著不可或缺的作用
?2.網絡連接的表達方式
用連線表示兩個器件有連接
用網絡標號來表示兩根期間有連接
單片機開發模式?
1.單片機開發模式
1.匯編操作寄存器。執行效率高。編寫難度大,移植性差。
2.使用C語言操作寄存器。 執行效率適中。編寫效率低,移植性差。
3.使用庫開發
????????標準庫,執行效率稍低,但是編寫效率高,移植性稍高
????????標準庫是ST公司最早發布的固件庫,對STM32芯片進行了完整的封裝,覆蓋了對應的外設的所有功能。它的缺點就是,它是針對某款STM32型號設計的,可移植性差,例如,F1系列的庫和F4系列的庫是不同的,但是在F1系列中還是可以通用的。
????????HAL庫,執行效率稍低,但是編寫效率高,移植性好
????????HAL庫是近幾年官方極力推薦的庫,覆蓋了全系列的芯片,可以說HAL庫就是用來取代標準庫的,相對標準庫,HAL庫有著更高的抽象、整合水平,它的API更多的集中關注在外設的公共函數功能,HAL庫的移植性好,它在STM32中的通用性很強。
創建工程的方式
創建工程方式有兩種:使用Keil創建工程模板、 使用STM32CubeMX新建一個工程
1.新建一個文件,添加文件:
????????DOC工程說明
????????????????doc說明文檔(里面寫這個工程是用來干什么的)
????????Libraries固件庫
????????????????cmsis內核文件(放一些內核文件,沒有他們芯片就工作不起來)
????????????????FWLIB外設文件(分為.c文件:翻譯行數的定義和.h文件:每個.c文件對應有一個.h文件是放行數的聲明)
????????????????start_up啟動文件(放一些單片機啟動的代碼,在內核文件里不同的后綴表示不同芯片的閃存的大小)
????????Project工程文件
????????????????keil工程
????????User應用程序(指的是我們的代碼要實現那些功能)
????????????????應用程序
新建工程
打開keil5,projecr,第一個,放在桌面上面的project的project,選擇芯片:F103C8
2.Keil里面新建文件
????????START_UP 啟動文件
????????USER 應用程序
????????CMSIS 內核配置相關文件
????????DOC 說明文檔
????????FWLIB 外設相關配置
右鍵keil里的Target1:add group(或者點擊紅色綠色白色小方格:在中間一欄操作)
keil對應的文件夾里面放入電腦里的文件,雙擊文件或小方塊右側一列也可以
? ? ? ??START_UP:在Libraries:cmsis:start_up:hd.s
????????USER:在?User:添加.c文件里面包含.h文件
????????CMSIS:在Libraries:CMSIS:.c文件
????????DOC:DOC
????????FWLIB:Libraries:src:ctrl+a全選.c文件
然后點魔術棒:c/c++:includepaths里面的.h文件
缺少USE_STDPERIPH_DRIVER.h文件,需要在魔術棒中宏定義:c/c++
燒錄STM32程序
1.配置keil生產hex文件(點擊魔術棒,output,勾選create hex file,全局編譯成功就會自動生產hex文件,生產在project:Object),要把hex文件燒錄進去
2.使用flymcu串口燒錄(為什么用串口燒錄?我們如果燒錄必須通過串口燒錄,得外接一個串口芯片,如果要用串口芯片,首先得讓它工作起來,所以要安裝一個串口驅動)
????????首先安裝串口驅動
?3.使用jlink、stlink燒錄工具在線燒錄????????
????????安裝stlink/jlink驅動
? ? ? ? 3.3v-3.3v
? ? ? ? gnd-gnd
? ? ? ? SWDIO-SWDIO
? ? ? ? SWCLK-SWCLK
?????????配置魔術棒勾選然后燒錄:Debug:選擇燒錄方式,LOAD標志
????????