STM32跑馬燈配置流程

2021-10-08 13:48:05 字數 2669 閱讀 9091

目錄

跑馬燈配置流程(戰艦開發板v3)

led的初始化

相應功能引腳的確定

確保在檔案中新增了相應庫檔案

先建立led硬體初始化檔案並新增進專案工程中

在建立好的檔案中編寫初始化led硬體的程式

編寫main函式

函式介紹

外圍裝置時鐘使能函式 「rcc_apb2periphclockcmd」

引腳狀態設定函式gpio_init

引腳電平設定函式gpio_setbits&gpio_resetbits

led初始化流程(也適用於其他引腳的初始化操作)

使能相應時鐘(為什麼一開始先使能時鐘,在前面gpio基礎知識中有講解)

初始化io口的配置(對哪個io口進行操作,輸入/輸出模式,輸入/輸出速度)

初始化io口的狀態(設定一開始的相應引腳電平)

跑馬燈實驗呼叫函式的順序(根據上述流程圖確定)

使能io口時鐘。呼叫函式rcc_apb2periphcolckcmd()(不同的io組,呼叫的時鐘使能函式不一樣)

初始化io口模式。呼叫函式gpio_init()

操作io口,輸出高低電平(主要呼叫函式:gpio_setbits();gpio_resetbits())

這兩個檔案是stm32開發板的啟動檔案,可以啟動你新增進其中的所有庫檔案。只注意就行,正點原子給你的template(庫函式版本)中已經新增進入這兩個檔案,只會用就基本上ok了。

led.**件

led.c檔案

函式參實設定小技巧

第一步:返回函式定義的位置

第二步:尋找引數的定義形式

找到引數的合法定義格式

注:先初始化在進行引腳的操作

函式原型

void rcc_apb2periphclockcmd(uint32_t rcc_apb2periph, functionalstate newstate)

函式名稱的由來

rcc  

(reset clock controller)復位與時鐘控制器

apb 

(advanced peripheral bus)高效能外圍裝置匯流排

periph 

peripheral的縮寫,意為外部裝置

cmd 

command的縮寫

注:apb與ahb的不同之處

ahb,是advanced high performance bus的縮寫,譯作高階高效能匯流排,這是一種「系統匯流排」。

ahb主要用於高效能模組 (如cpu、dma和dsp等)之間的連線。ahb 系統由主模組、從模組和基礎結構(infrastructure)3部分組成,整個ahb匯流排上的傳輸都由主模組發出,由從模組負責回應。

apb是advanced peripheral bus的縮寫,這是一種外圍匯流排。

apb主要用於低頻寬的周邊外設之間的連線,例如uart、1284等,它的匯流排架構不像 ahb支援多個主模組,在apb裡面唯一的主模組就是apb 橋。

這兩者都是匯流排,符合amba規範。

函式原型

void gpio_init(gpio_typedef* gpiox, gpio_inittypedef* gpio_initstruct)

函式名稱的由來

gpio

(general-purpose io pin)意為通用io引腳

init

(initial)初始化

函式原型

void gpio_setbits(gpio_typedef* gpiox, uint16_t gpio_pin)

void gpio_resetbits(gpio_typedef* gpiox, uint16_t gpio_pin)

函式的作用

gpio_setbits

將引腳電平置1

gpio_resetbits

將引腳電平置0

兩個函式的實質

STM32跑馬燈實驗

本次跑馬燈實驗主要用到pb6 pb9幾個埠 include led.h void led init void 自定義led燈初始化函式 標頭檔案中主要是一些巨集定義和位帶操作 ifndef led h define led h include stm32f10x.h define led1 on g...

stm32跑馬燈實驗

本文記錄stm32mini開發板實驗 普通跑馬燈 回歸gpio基礎知識 每組io口含有下面7個暫存器,7個暫存器一共可以控制一組gpio的16個io口。gpiox crl 埠配置低暫存器 gpiox crh 埠配置高暫存器 gpiox idr 埠輸入暫存器 gpiox odr 埠輸出暫存器 gpio...

STM32 跑馬燈實現

走馬燈實現 實現原理 依次從頭到尾點亮8個燈 列如 第乙個燈賦值低電平 點亮 延遲之後 暫未確定多少s 不使用燈暫存器之後,系統自動熄滅,在點亮下乙個燈,依次往下 include stm32f10x.h define uint unsigned int void delay uint time vo...