STM32 認識STM32

?

目錄

什么是嵌入式?

認識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標志

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76334.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#核心筆記——(六)框架基礎

我們在編程時所需的許多核心功能并不是由C#語言提供的,而是由.NET Framework中的類型提供的。本節我們將介紹Framework在基礎編程任務(例如虛的等值比較、順序比較以及類型轉換)中的作用。我們還會介紹Framework中的基本類型,例如String、DateTime和Enum. 本章中的絕大部分…

AI——K近鄰算法

文章目錄 一、什么是K近鄰算法二、KNN算法流程總結三、Scikit-learn工具1、安裝2、導入3、簡單使用 三、距離度量1、歐式距離2、曼哈頓距離3、切比雪夫距離4、閔可夫斯基距離5、K值的選擇6、KD樹 一、什么是K近鄰算法 如果一個樣本在特征空間中的k個最相似(即特征空…

transient關鍵字深度解析

Java transient 關鍵字深度解析 transient(意思:瞬時的,瞬間的) 1. 核心概念 (1) 基本定義 作用:標記字段不參與序列化 適用場景: 敏感數據(如密碼、密鑰) 臨時計算字段 依賴運行時環境的字段(如Thread對象) (2) 語法示例 java public class User implements Se…

信刻電子檔案藍光光盤刻錄安全檢測長期歸檔

信刻一直致力于為檔案館、各行業檔案部門,提供跨網數據交換、電子檔案數據磁光異質備份歸檔解決方案。所研制的電子檔案光盤智能長期歸檔系統,滿足國產環境下”刻、管、存、檢、用”全生命周期管理應用需求,能夠提供一份離線歸檔、一份近線存…

Word 中“母版頁”的等效機制

Word 和 PowerPoint 不太一樣——**Word 實際上沒有像 PowerPoint 那樣的“母版頁(Master Page)”**功能。但它有1個和“母版頁”功能類似的東西,可能造成你看到的“校徽自動出現在每一頁”的現象: ? Word 中“母版頁”的等效機制…

Go:反射

為什么使用反射 在編程中,有時需編寫函數統一處理多種值類型 ,這些類型可能無法共享同一接口、布局未知,甚至在設計函數時還不存在 。 func Sprint(x interface{}) string {type stringer interface {String() string}switch x : x.(type) …

SS25001-多路復用開關板

1 概述 1.1 簡介 多路復用開關板是使用信號繼電器實現2線制的多路復用開關板卡;多路復用開關是一種可以將一個輸入連接到多個輸出或一個輸出連接到多個輸入的拓撲結構。這種拓撲通常用于掃描,適合將一系列通道自動連接到公共線路的的設備。多路復用開…

vue3 nprogress 使用

nprogress 介紹與作用 1.nprogress 是一個輕量級的進度條組件,主要用于在頁面加載或路由切換時顯示一個進度條,提升用戶體驗。它的原理是通過在頁面頂部創建一個 div,并使用 fixed 定位來實現進度條的效果 2.在 Vite Vue 3 項目中&#xf…

Jsp技術入門指南【六】jsp腳本原理及隱式對象

Jsp技術入門指南【六】jsp腳本原理及隱式對象 前言一、JSP 腳本元素1.1 聲明1.2 表達式1.3 腳本標簽 二、JSP 的隱式對象是什么三、隱式對象詳解outrequestsessionapplicationconfigexception 前言 在之前的博客中,我們已經介紹了JSP的環境搭建、編譯文件查找以及生…

vue3推薦的移動table庫

vxe-table https://gitee.com/js-class/vxe-table#https://gitee.com/link?targethttps%3A%2F%2Fvxetable.cn 文檔api https://vxetable.cn/#/component/table/other/bookkeepingVoucher 引入步驟 安裝 npm install xe-utils vxe-tablenext 在項目main.js引入 import …

HOOPS Exchange 與HOOPS Communicator集成:打造工業3D可視化新標桿!

一、概述 在工業3D開發、BIM建筑、數字孿生和仿真分析等高端應用場景中,數據格式復雜、模型體量龐大、實時交互體驗要求高,一直是困擾開發者的難題。Tech Soft 3D旗下的HOOPS Exchange和HOOPS Communicator,正是解決這類問題的黃金搭檔。二者…

《軟件設計師》復習筆記(14.3)——設計模式

目錄 一、設計模式分類 1. 創建型模式(Creational Patterns) 2. 結構型模式(Structural Patterns) 3. 行為型模式(Behavioral Patterns) 真題示例: 一、設計模式分類 架構模式 高層設計決…

HarmonyOS:使用Refresh組件實現頁面下拉刷新上拉加載更多

一、前言 可以進行頁面下拉操作并顯示刷新動效的容器組件。 說明 該組件從API Version 8開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。該組件從API Version 12開始支持與垂直滾動的Swiper和Web的聯動。當Swiper設置loop屬性為true時&…

55、?屏加載?屏怎么進?優化

答: (1)使?CDN 減?代碼體積,加快請求速度; (2)SSR通過服務端把所有數據全部渲染完成再返回給客?端; (3) 路由懶加載,當??訪問的時候,再加載相應模塊; (4) 使?外…

什么是Python單例模式

什么是Python單例模式 Python單例模式是一種創建型設計模式,目的是確保一個類僅有一個實例,并提供一個全局訪問點來獲取該實例。以下從作用和示例進行介紹: 作用 控制資源使用:避免對系統資源的重復消耗,像數據庫連接、文件句柄等稀缺資源,只創建一個實例來管理使用,防…

Java 2025:解鎖未來5大技術趨勢,Kotlin融合AI新篇

各位Java開發者們好!🚀 2025年的Java世界正在經歷一場前所未有的技術變革。作為深耕Java領域多年的技術博主,今天我將帶大家深入探索Java生態即將迎來的5大技術趨勢,特別是Kotlin的深度融合和AI技術的新篇章。準備好了嗎&#xff…

計算機視覺cv2入門之車牌號碼識別

前邊我們已經講解了使用cv2進行圖像預處理與邊緣檢測等方面的知識,這里我們以車牌號碼識別這一案例來實操一下。 大致思路 車牌號碼識別的大致流程可以分為這三步:圖像預處理-尋找車牌輪廓-車牌OCR識別 接下來我們按照這三步來進行講解。 圖像預處理 …

CExercise_13_1排序算法_3快速排序算法,包括單向分區以及雙向分區

題目: 請手動實現快速排序算法,包括單向分區以及雙向分區: // 單向分區快速排序算法 void quick_sort_one_way(int arr[], int len); //雙向分區快速排序算法 void quick_sort_two_way(int arr[], int len); 關鍵點 分析: &#x…

FPGA-VGA

目錄 前言 一、VGA是什么? 二、物理接口 三、VGA顯示原理 四、VGA時序標準 五、VGA顯示參數 六、模塊設計 七、波形圖設計 八、彩條波形數據 前言 VGA的FPGA驅動 一、VGA是什么? VGA(Video Graphics Array)是IBM于1987年推出的…

Linux和Ubuntu的驅動適配情況

舊 一、Linux Yocto3.0 二、Ubuntu 1.驅動 1.rtc正常 2.led正常 3.加密芯片正常 4.硬件看門狗不行,驅動已經適配好,等硬件修復后,直接使用腳本就可以 5.千兆網口可以,兩個百兆網口不行 6.USB上面和下面都可以(插u盤…