STM32與一般單片機/ARM7最大的不同,則是它的寄存器特別多,而使用者又很難全部記下,因此,ST官方則根據規范提供了一套庫函數源碼,通過直接操作庫函數達到對寄存器操作的目的。
固件庫就是函數的集合,固件庫函數的作用是向下負責與寄存器直接打交道,向上提供用戶函數調用的接口(API)。
在以前的51單片機開發中,我們常常直接對寄存器進行操作,如控制I/O口狀態:
P0 = 0x11;
而在STM32開發中,同樣對寄存器操作:
GPIOx->BRR = 0x0011;
控制BRR寄存器實現電平的控制,就有一個官方封裝的函數,如下:
void GPIO_ResetBits(GPIO_TypeDef * GPIO,uint16_t GPIO_Pin) { GPIO->BRR = GPIO_Pin; }
此時,無需直接操作寄存器BRR,只需要知道,如何使用GPIO_ResetBits()函數就可以了。