解析STM32的庫函數
但這對于許多從51/AVR這類單片機的開發轉到STM32平臺的開發人員來說,勢必有一個不適應的過程。因為程序開發不再是從寄存器層次起始,而要首先去熟悉STM32所提供的固件庫。那是否一定要使用固件庫呢?當然不是。但STM32微控制器的寄存器規模可不是常見的8位單片機可以比擬,若自己細細琢磨各個寄存器的意義,必然會消耗相當的時間,并且對于程序后續的維護,升級來說也會增加資源的消耗。對于當前“時間就是金錢”的行業競爭環境,無疑使用庫函數進行STM32的產品開發是更好的選擇。本文將通過一個簡單的例子對STM32的庫函數做一個簡單的剖析。
以最常用的GPIO設備的初始化函數為例,如下程序段一:
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);
這是一個在STM32的程序開發中經常使用到的GPIO初始化程序段,其功能是將GPIOA.4口初始化為推挽輸出狀態,并最大翻轉速率為50MHz。下面逐一分解:
l
typedef struct
{
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;
評論