国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手教你STM32入門教程(標準庫)

這篇具有很好參考價值的文章主要介紹了手把手教你STM32入門教程(標準庫)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

前言

步驟一:準備工作

步驟二:安裝Keil?MDK-ARM開發(fā)工具

步驟三:創(chuàng)建工程

步驟四:配置工程

步驟六:編寫代碼

步驟七:下載程序?

?總結(jié)


前言 ?

在物聯(lián)網(wǎng)時代,嵌入式系統(tǒng)的應用越來越廣泛,而STM32作為業(yè)內(nèi)領(lǐng)先的嵌入式芯片之一,受到了越來越多開發(fā)者的關(guān)注和喜愛。然而,對于初學者來說,學習STM32還是有一定難度的,需要具備一定的電子、嵌入式系統(tǒng)的基礎(chǔ)知識。

STM32是一款非常強大的嵌入式芯片,它的應用領(lǐng)域非常廣泛。在學習STM32的過程中,首先需要掌握的是基本的硬件知識和編程語言,然后才能深入學習STM32的應用和開發(fā)。本教程將手把手教你如何入門STM32(標準庫),讓你快速掌握STM32的基礎(chǔ)知識和開發(fā)技巧。

本教程包含豐富的實例代碼和實驗,每一節(jié)都附有詳細的圖文解釋和操作步驟,讓初學者能夠輕松理解和掌握。

最后,希望本教程能夠成為初學者STM32學習的得力助手,也希望讀者在學習過程中能夠不斷探索、實踐和創(chuàng)新,不斷提高自己的技能水平。


步驟一:準備工作

  • 硬件?
  1. STM32開發(fā)板(本文章使用STM32F103VET6芯片)
  2. 仿真燒錄下載器(本文章使用?ST-LINK V2?下載器)

stm32編程教程,stm32,單片機,嵌入式硬件stm32編程教程,stm32,單片機,嵌入式硬件

(你也可以使用其他開發(fā)板芯片和仿真下載器,不妨礙繼續(xù)閱讀本文章)?

  • 軟件?
  1. Keil?MDK-ARM開發(fā)工具
  2. STM32標準庫

步驟二:安裝Keil?MDK-ARM開發(fā)工具

本文章使用Keil5(MDK)開發(fā)平臺,但你可以用STM32CubeIDE、或VScode,根據(jù)個人使用喜好開發(fā)

如果你沒安裝Keil5(MDK)軟件(如果你已經(jīng)安裝跳過),提供以下鏈接參考下載:

首先需要下載Keil?MDK-ARM開發(fā)工具,并且安裝好。安裝過程中需要選擇安裝的組件,選擇CMSIS和Device?Support即可。

安裝教程 :Keil5安裝教程(包含C51與MDK共存)WIN10 親測可用

網(wǎng)盤下載:Keil5 MDK 下載 提取碼:1234

stm32編程教程,stm32,單片機,嵌入式硬件


步驟三:創(chuàng)建工程

  • 創(chuàng)建文件夾

先下載標準庫:?標準庫下載 提取碼:1234

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

?下載到桌面上,右擊該壓縮包進行解壓?

stm32編程教程,stm32,單片機,嵌入式硬件stm32編程教程,stm32,單片機,嵌入式硬件

解壓完了后,新建文件夾,命名隨意,但最好不用中文,防止出現(xiàn)不明錯誤。然后在建好的文件夾再以下文件夾并命名(方便移植標準庫)? 如圖:?

stm32編程教程,stm32,單片機,嵌入式硬件

??文件夾釋義:Core(架構(gòu)Cortex?-M3內(nèi)核)、Fwlib(標準庫中的.c和.h頭文件)、Project(用來放工程)、Startup(芯片啟動文件)、User(用戶文件,用來放主函數(shù))

stm32編程教程,stm32,單片機,嵌入式硬件

  • ?新建完成后進行庫移植?

1.Core移植

打開文件夾 路徑:“STM32F10x_StdPeriph_Lib_V3.5.0”-“Libraries”-“CMSIS”-“CM3”-“CoreSupport”,然后右擊長按選中兩個-“core_cm3.c”和“core_cm3.h”,選中后右擊復制粘貼到“Test”-“Core”的文件夾中

stm32編程教程,stm32,單片機,嵌入式硬件

?然后退回到“CM3”文件夾中

?打開文件夾 路徑:“CM3”-“DeviceSupport”-“ST”-“STM32F10x”,然后右擊長按選中三個“stm32f10x.h”和“system_stm32f10x.c”和“system_stm32f10x.h”,選中后復制粘貼到“Test”-“Core”的文件夾中

stm32編程教程,stm32,單片機,嵌入式硬件

?2.Fwlib移植 (這個就比較簡單了)

返回到“STM32F10x_StdPeriph_Lib_V3.5.0”中-“Libraries”-“STM32F10x_StdPeriph_Driver”-然后右擊長按選中兩個-“inc”和“src”,選中后右擊復制粘貼到“Test”-“Fwlib”的文件夾中。

inc:是標準庫里的.h文件

src:是標準庫里的.c文件

stm32編程教程,stm32,單片機,嵌入式硬件

?3.Startup(啟動文件移植)

?返回到 文件路徑如下:“STM32F10x_StdPeriph_Lib_V3.5.0”- “Libraries”-“CMSIS”-“CM3”-"DeviceSupport"-“ST”-“STM32F10x”-“startup”,然后選中全部一起復制到“Test”-“Startup”文件夾中

stm32編程教程,stm32,單片機,嵌入式硬件

?4.User移植

打開文件夾“User”?-右擊選擇新建文本文檔,然后重命名為“main.c”。

打開文件夾 “STM32F10x_StdPeriph_Lib_V3.5.0”->“Project” -“STM32F10x_StdPeriph_Template”

然后選中“stm32f10x_conf.h”和“stm32f10x_it.c”和“stm32f10x_it.h”和“system_stm32f10x.c”復制到文件夾“Test”-“User”中

stm32編程教程,stm32,單片機,嵌入式硬件


步驟四:配置工程

雙擊打開Keil5(MDK)

stm32編程教程,stm32,單片機,嵌入式硬件

在Keil?MDK-ARM開發(fā)工具中,選擇File->New?Project,然后選擇工程路徑,輸入工程名稱即可創(chuàng)建工程。

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

建工程中,它會彈一個讓你選擇芯片的彈窗,本文章使用STM32F103VET6芯片,所以選圖中“STM32F103VE

假如你的開發(fā)板芯片是“STM32F103C8T6”,那么你應該選擇圖中“STM32F103C8

stm32編程教程,stm32,單片機,嵌入式硬件stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

點OK后會跳出一個“Manage Run-Time Environment”的窗口,不用理會,直接叉掉。

然后按圖步驟繼續(xù)--

將STM32標準庫中的源文件和頭文件添加到工程中,例如:stm32f0x.h、stm32f0x_gpio.h、stm32f0x_rcc.h等。

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

注意:??圖下在給“Startup”添加文件中選擇了“startup_stm32f10x_hd”啟動文件,芯片容量不同,“STM32F103VET6”容量512KB,屬于高容量

假如你使用 “STM32F103C8T6”芯片,容量為64KB,屬于中容量,應選擇“startup_stm32f10x_md

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

?雙擊工程中“main.c”,然后對該文件右擊選擇“l(fā)nsert '#include file”-“stm32f10x.h”,快速添加頭文件。然后在8296行代碼復制USE_STDPERIPH_DRIVER

stm32編程教程,stm32,單片機,嵌入式硬件

?復制后打開小魔術(shù)棒-點擊“C/C++”在“Define”框粘貼,然后在"Include Pahs"添加頭文件路徑,然后新建-選擇文件路徑添加進去:“Test”文件夾中的“Core”、“Fwilb/inc”、“Startup”、“User”,這幾個文件夾。

stm32編程教程,stm32,單片機,嵌入式硬件

??把以下代碼復制到main.c中,再點Bulid編譯,以下是編譯成功圖片

#include "stm32f10x.h"                  // Device header

int main(void)
{

}

stm32編程教程,stm32,單片機,嵌入式硬件


步驟六:編寫代碼

通過編譯后,繼續(xù)入門第一課? ?點個燈stm32編程教程,stm32,單片機,嵌入式硬件

?首先看看自己的開發(fā)板原理圖有沒有LED燈,如圖

stm32編程教程,stm32,單片機,嵌入式硬件

這個原理圖中LED一頭接1K上拉電阻通往PB5引腳,另一頭接去GND。得知該LED高電平點亮,低電平熄滅。

如果你的開發(fā)板的LED是其他引腳,例 PA5,也是一樣原理能點燈。

開始配置,在main.c中添加代碼 :

stm32編程教程,stm32,單片機,嵌入式硬件

打開“stm32f10x_rcc.h”,把這個函數(shù):

“void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);”

Q:復制到主函數(shù)函數(shù)里,為什么要用這個函數(shù)呢?

A:這個RCC是內(nèi)部時鐘,必須開時鐘才能運行,GPIOB在APB2總線上,所以選這個函數(shù)。

函數(shù)里面的第一個形參是選擇GPIO位置,我的開發(fā)板PB5口,所以選擇RCC_APB2Periph_GPIOB。

然后,函數(shù)里面的第二個形參是使能端,ENABLE就是打開,DISABLE就是關(guān)閉。

?RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

然后就是GPIO配置

打開“stm32f10x_gpio.h”,把這個函數(shù):

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

這個函數(shù)需要引出結(jié)構(gòu)體進行配置,再賦給這個函數(shù).

第一個形參是GPIO位,如果你是PA5即GPIOA,本文章是PB5即GPIOB

第二個形參是結(jié)構(gòu)體變量名,這個結(jié)構(gòu)體跟枚舉差不多,直接&上結(jié)構(gòu)體變量地址就行了

GPIO_Init(GPIOB, &GPIO_InitStructure); //PB5

例 :GPIO_Init(GPIOA, &GPIO_InitStructure); //PA5

stm32編程教程,stm32,單片機,嵌入式硬件

?GPIO_InitTypeDef中要引出3個結(jié)構(gòu)體進行配置

第一個是GPIO工作模式,LED一般都是推挽輸出?,具體內(nèi)容參考STM32入門-GPIO端口的八種工作模式

?GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//設(shè)置為推挽輸出

第二個是GPIO引腳,因為原理圖是PB5,所以直接改后面的數(shù)字就可以了???

?GPIO_InitStructure.GPIO_Pin ? ? ?= GPIO_Pin_5;

第三個是速度,一般直接50Mhz

? GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;

stm32編程教程,stm32,單片機,嵌入式硬件

配置好了,最后就是直接置1點亮(高電平)

直接調(diào)函數(shù)就可以置高電平了?

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//GPIO設(shè)置為高電平
第一個參數(shù)為 GPIO位置,假如是PA5,那就GPIOA。如果是PB5,那就GPIOB.

第二個參數(shù)是引腳位置,GPIO_Pin_x(x:引腳位置,例:PB5 = GPIO_Pin_?5).

GPIO_SetBits(GPIOB, GPIO_Pin_5);//PB5

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件


步驟七:下載程序?

?后面就是通過仿真燒錄器下載,將ST-LINK?V2仿真器連接到STM32芯片上,然后在Keil?MDK-ARM開發(fā)工具中選擇Flash->Download,將程序下載到芯片中。

打開小魔術(shù)棒-Debug

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

stm32編程教程,stm32,單片機,嵌入式硬件

如果你是芯片是64KB的,下載時候這個位置要選擇合適的Flah 參考網(wǎng)站:STM32下載程序

stm32編程教程,stm32,單片機,嵌入式硬件

成功點亮截圖

stm32編程教程,stm32,單片機,嵌入式硬件

代碼奉上?

#include "stm32f10x.h"                  // Device header

void	LED_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin      = GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

int main(void)
{
	LED_Config();
	while(1)
	{
		GPIO_SetBits(GPIOB, GPIO_Pin_5);
	}
}

?總結(jié)

?本教程介紹了如何入門STM32(標準庫),包括安裝開發(fā)工具、安裝仿真器驅(qū)動、創(chuàng)建工程、配置工程、添加文件、編寫代碼、編譯程序和下載程序等步驟。希望可以幫助初學者快速掌握STM32的基礎(chǔ)知識和開發(fā)技巧。

沒有人一開始是大佬,都是從小白入門的.謝謝閱讀!文章來源地址http://www.zghlxwxcb.cn/news/detail-650571.html

到了這里,關(guān)于手把手教你STM32入門教程(標準庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 手把手教你寫stm32f103智能風扇

    手把手教你寫stm32f103智能風扇

    本系統(tǒng)可以分為兩個模式來進行運行,分別為手動模式和自動模式,同時,在上電進入系統(tǒng)后,還會有一個模式選擇的界面產(chǎn)生。 模式選擇:在此界面中,可以通過按鍵K1來控制模式選擇,兩個模式分別為手動模式和自動模式;通過按鍵K2可以進入模式。 手動模式:在手動模

    2023年04月17日
    瀏覽(93)
  • 手把手教你開發(fā)stm32——看門狗(基于hal庫)

    手把手教你開發(fā)stm32——看門狗(基于hal庫)

    看門狗定時器(WDT,Watch Dog Timer)是單片機的組成部分,它實際上是一個計數(shù)器,一般給看門狗一個數(shù)值,程序開始運行后看門狗開始倒計時。如果程序運行正常,過一段時間CPU應發(fā)出指令讓看門狗復位,重新開始計數(shù),也就是所謂的“喂狗”。如果看門狗減到0就認為程序沒

    2024年02月17日
    瀏覽(24)
  • 手把手教你開發(fā)stm32——ADC(基于hal庫)

    手把手教你開發(fā)stm32——ADC(基于hal庫)

    ADC的概念: Analog-to-Digital Converter的縮寫。指模/數(shù)轉(zhuǎn)換器或者模擬/數(shù)字轉(zhuǎn)換器。是指將連續(xù)變化的模擬信號轉(zhuǎn)換為離散的數(shù)字信號的期間。 ADC的作用: 采集傳感器數(shù)據(jù),測量輸入電壓,檢查電池電量剩余,監(jiān)測溫濕度等。 典型的模擬數(shù)字轉(zhuǎn)換器將模擬信號轉(zhuǎn)換為表示一定比

    2024年02月08日
    瀏覽(30)
  • 動手實踐丨手把手教你用STM32做一個智能魚缸

    動手實踐丨手把手教你用STM32做一個智能魚缸

    摘要: 本文基于STM32單片機設(shè)計了一款基于物聯(lián)網(wǎng)的智能魚缸。 本文分享自華為云社區(qū)《基于STM32+華為云IOT設(shè)計的物聯(lián)網(wǎng)魚缸【玩轉(zhuǎn)華為云】》,作者: DS小龍哥 。 為了緩解學習、生活、工作帶來的壓力,提升生活品質(zhì),許多人喜歡在家中、辦公室等場所養(yǎng)魚。為節(jié)省魚友

    2024年01月16日
    瀏覽(29)
  • 手把手教你開發(fā)stm32——系統(tǒng)時鐘(基于hal庫)

    手把手教你開發(fā)stm32——系統(tǒng)時鐘(基于hal庫)

    概念: 時鐘系統(tǒng)是由振蕩器(信號源)、定時喚醒器、倍頻器、分頻器等組成的電路。常用的信號源有晶體振蕩器和RC振蕩器。 意義: 時鐘是嵌入式系統(tǒng)的脈搏,處理器嚙合在時鐘的驅(qū)動下完成指令執(zhí)行,狀態(tài)轉(zhuǎn)換等等動作,外設(shè)部件在時鐘的驅(qū)動下完成各種工作,比如串

    2024年02月06日
    瀏覽(30)
  • 手把手教你開發(fā)stm32——定時器(上)(基于hal庫)

    手把手教你開發(fā)stm32——定時器(上)(基于hal庫)

    定時器可以對輸入的時鐘進行計數(shù),并在計數(shù)值達到設(shè)定值時觸發(fā)中斷。 16位計數(shù)器、預分頻器、自動重裝載寄存器的時基單元。 不僅具備基本的定時中斷功能,而且還包含內(nèi)外時鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)模式等多種功能。 根據(jù)復雜度和引用

    2024年02月03日
    瀏覽(22)
  • FPGA之手把手教你寫串口協(xié)議解析(STM32與FPGA數(shù)據(jù)互傳)

    最近趁熱打鐵做了一個關(guān)于STM32與FPGA通信并且控制高速DA模塊產(chǎn)生不同頻率信號的正弦波、方波、三角波和鋸齒波的項目,從中收獲到了很多東西,也踩了一些雷和坑,將分為幾篇文章將整個過程分享出來。 這一次準備分享的是對串口數(shù)據(jù)的解析和賦值。解析的數(shù)據(jù)由STM32發(fā)

    2024年02月06日
    瀏覽(28)
  • 手把手教你,通過HAL庫實現(xiàn)STM32的超聲波測距--以SR-04為例

    手把手教你,通過HAL庫實現(xiàn)STM32的超聲波測距--以SR-04為例

    目錄 0、SR-04基本原理 1、準備工作 2、連線 ?3、STM32CUBEMX設(shè)置 3.1新建工程 3.2芯片通用設(shè)置 3.3定時器捕獲設(shè)置 ?3.4其他設(shè)置 3.5生成工程 ?4、程序完善 4.1完善打印輸出函數(shù) ?4.2完善tim.c 4.3完善gpio.c? 4.4完善main函數(shù)? ?5、總結(jié) 聲波遇到障礙物會反射,而聲波的速度已知,所以

    2024年02月14日
    瀏覽(23)
  • MySQL8.0.32詳細安裝教程(奶媽級手把手教你安裝)

    MySQL8.0.32詳細安裝教程(奶媽級手把手教你安裝)

    前言 下載地址: MySQL安裝版(還有個MySQL免安裝板) 1. 如圖所示下載頁面 2. 在這里我們選擇第二個下載項 3. 在下載頁面,不用使用Oracle賬號去登錄或者注冊,直接點擊 No thanks, just start my download. 進行下載。 1. 下載完成后,我們下載的是這么個玩意兒 2. 雙擊運行.msi文件 3.

    2024年02月06日
    瀏覽(29)
  • 手把手教你使用USB的CDC+MSC復合設(shè)備(基于stm32f407)

    手把手教你使用USB的CDC+MSC復合設(shè)備(基于stm32f407)

    ??最近對usb有點興趣,感覺挺好玩的,于是買了本圈圈大神的經(jīng)典著作-圈圈教你玩USB,里面使用51單片機+usb芯片對usb的基本知識潺潺道來,做了十個左右的常用案例實驗,很有趣,建議大家看看。 ??趁熱打鐵,拿身邊的開發(fā)板來練練手,探索一下復合設(shè)備的好玩方便的

    2024年02月13日
    瀏覽(99)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包