STM32庫函數和寄存器的區別

庫函數版和寄存器版的系統時鐘設置的區別:
**1.**庫函數的目的是讓用戶應用的,而寄存器更加原始

庫函數的系統時鐘是默認設置的,且放在啓動文件裏。而寄存器版的系統時鐘是Stm32_Clock_Init(336,8,2,7);.

**2.**庫函數的快捷的,但不是每個芯片都有的;寄存器是複雜的,但是每個芯片廠商都有提供系統的寄存器設置信息。

分別打開庫函數和寄存器版的I/O口設置:
庫函數:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);gotoh後先通過assert_param();函數檢查格式是否正確同時只要是ENABLE,RCC->AHB1ENR |= RCC_AHB1Periph;接着給對應的寄存器賦值。

寄存器:
RCC->AHB1ENR|=1<<0; //使能PORTA口時鐘 (就一句賦值語句就行了)。

從這裏也可以看出寄存器的第二個區別是(打個比方,做爲嵌入式開發我們經常會用到電子元器件,這是我們有兩個選擇一是在淘寶直接買一個模塊,二是在在淘寶買這個模塊的對應的元器件然後自己焊接)這個就可以看出通過寄存器的設置確實有利於理解對應的工作原理,而且對於簡單的應用來說,確實很快捷。但是隨着你做的東西越來越多,越來越複雜,就無暇顧及每一個功能模塊的具體運行情況,這時一般的話會在網上直接買對應的模塊,然後利用串口,iic,spi等通信方式進行獲取對應的數據即可。這時,我在想學習寄存器目的就是爲了更快理解一個新的芯片,因爲正點原子並沒有所有的芯片的庫函數。庫函數不是憑空來的,也不是必須有的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章