解析STM32的庫函數(shù)
但這對(duì)于許多從51/AVR這類單片機(jī)的開發(fā)轉(zhuǎn)到STM32平臺(tái)的開發(fā)人員來說,勢(shì)必有一個(gè)不適應(yīng)的過程。因?yàn)槌绦蜷_發(fā)不再是從寄存器層次起始,而要首先去熟悉STM32所提供的固件庫。那是否一定要使用固件庫呢?當(dāng)然不是。但STM32微控制器的寄存器規(guī)??刹皇浅R姷?位單片機(jī)可以比擬,若自己細(xì)細(xì)琢磨各個(gè)寄存器的意義,必然會(huì)消耗相當(dāng)?shù)臅r(shí)間,并且對(duì)于程序后續(xù)的維護(hù),升級(jí)來說也會(huì)增加資源的消耗。對(duì)于當(dāng)前“時(shí)間就是金錢”的行業(yè)競(jìng)爭(zhēng)環(huán)境,無疑使用庫函數(shù)進(jìn)行STM32的產(chǎn)品開發(fā)是更好的選擇。本文將通過一個(gè)簡(jiǎn)單的例子對(duì)STM32的庫函數(shù)做一個(gè)簡(jiǎn)單的剖析。
以最常用的GPIO設(shè)備的初始化函數(shù)為例,如下程序段一:
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed =
GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA , &GPIO_InitStructure);
這是一個(gè)在STM32的程序開發(fā)中經(jīng)常使用到的GPIO初始化程序段,其功能是將GPIOA.4口初始化為推挽輸出狀態(tài),并最大翻轉(zhuǎn)速率為50MHz。下面逐一分解:
l
typedef struct
{
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;
評(píng)論