學了一周多的STM32,從最開始的點亮一盞燈到中斷定時的使用,發現對於ST庫使用的一些使用方法,現作一小結:1、初始化結構體 a、定義一個xxx—InitTypeDef 類型的結構體,比如GPIO—InitTypeDef類型的GPIO—InitStructure用來配置GPIO; b、根據所使用.....
學了一周多的STM32,從最開始的點亮一盞燈到中斷定時的使用,發現對於ST庫使用的一些使用方法,現作一小結:
1、初始化結構體
a、定義一個xxx—InitTypeDef 類型的結構體,比如GPIO—InitTypeDef類型的GPIO—InitStructure用來配置GPIO;
b、根據所使用的要求向這些結構體的成員中寫入特定的控制參數,如GPIO_initStructure.GPIO_Pin=GPIO_Pin_13;
c、將結構體作為輸入參數調用相應的外設庫函數xxx—Init(),實現向寄存器寫入控制參數;
2、數據的輸入與輸出
a、先通過輸入參數向函數制定要使用的外設是什麼,比如用(GPIOA,GPIO—Pin—5),選中PA5引腳進行控制;
b、進行寫或者讀數據操作,例如函數GPIO_WriteBit(GPIOA, u16 GPIO_Pin—5, Bit_RESE) ,是對PA5進行寫1操作;
c、如果是接收外部數據,則調用Read或Receive函數,讀取函數返回值來得到外部輸入數據。
3、狀態位、標誌位
在程式運行的過程中當我們需要知道一些外設的工作狀態的時候,那麼就會涉及一系列的標誌檢查函數:
a、名為 PPP_GetFlagStatus的函數,其功能為檢查外設 PPP某標誌位被設置與否,例如:TIM_ GetFlagStatus ;
b、名為 PPP_ClearFlag 的函數,其功能為清除外設 PPP標誌位,例如:TIM_ ClearFlag ;
c、名為 PPP_GetITStatus 的函數,其功能為判斷來自外設 PPP的中斷發生與否,例如:TIM_ GetITStatus ;
d、名為 PPP_ClearITPendingBit 的函數,其功能為清除外設 PPP 中斷待處理標誌位,例如:TIM_ ClearITPendingBit 。
總結:
ST官方庫有許多共同特點,在此對外設主要的共同函數進行一個簡單的分類總結:
函數名 | 功能 | 輸入參數 | 返回值 |
XXX—Init() | 對外設進行初始化 |
XXX—inirTypeDef類型結構體 |
void |
XXX—DeInit() |
以系統預設形式初始化外設 | 將要進行初始化的外設名 | void |
XXX—StructInit() |
以預設的數據填充初始化結構體 | 將要進行預設填充的XXX—InitTypeDef類型結構體 | void |
XXX—SendData() |
使用外設發送數據 |
XXX相應的外設名;將要發送的數據 |
void |
XXX—ReceiveData() |
獲取外設接收到的數據 |
XXX相應的外設名 |
返回接收到的數據 |
XXX_ GetFlagStatus () |
檢測外設事件標誌位 | 要檢查的時間標誌名 | SET或RESET |
XXX_ GetITStatus () |
檢查中斷標誌 | 要檢查的中斷標誌名 | SET或RESET |
XXX_ ClearFlag () |
清除事件標誌位 | 要清除的事件標誌名 | void |
XXX_ ClearITPendingBit () |
清除掛起的中斷標誌位 | 要檢測的中斷標誌名 | void |
XXX_ITConfig () |
設置外設的中斷 | XXX相應得外設;選擇開啟外設的某中斷 | void |
XXX_Cmd () |
使能或失能外設 | 配置外設名;ENABLE或DISABLE | void |
XXX_ DMACmd () |
配置外是否可使用DMA請求 | 配置外設名;選擇要配置的DMA請求;ENABLE或DISABLE | void |