初學(xué)STM32接觸的是點燈程序,其實就是對ARM的GPIO口的熟悉和掌握。
在使用GPIO口前需要對對應(yīng)的端口進行初始化,初始化的配置程序如下所示。
void
GPIO_Configuration(void)
{
}
以上代碼可以參見STM32的固件庫手冊,里面有對每個函數(shù)的詳細(xì)說明。
下面是對IO口的設(shè)置,這里設(shè)置IO口為低時LED燈點亮。
方法一:
GPIOB->BSRR = 0x2000D000;
這里我看了很久都沒有弄明白,哎,這個值對初學(xué)者來說很難弄明白。后來查閱STM32103XX的參考手冊才發(fā)現(xiàn)有BSRR的寄存器配置詳細(xì)解說。看完后才恍然大悟。
前16位為BRy,置1時清楚對應(yīng)ODRy;后16位為BSy,置1時設(shè)置對應(yīng)ODRy;兩者同時設(shè)置時,以BSy有效。
方法二:
GPIO_SetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_14 |
GPIO_Pin_15);
GPIO_ResetBits(GPIOB, GPIO_Pin_13);
這個功能和方法一等效,但是易讀,比較推薦這種寫法,雖然多了一行語句。
方法三:
GPIO_WriteBit(GPIOB, GPIO_Pin_15, Bit_SET);
此方法適用于對單個端口的操作,比較方便。
Bit_SET設(shè)置數(shù)據(jù)端口位,Bit_RESET,清楚數(shù)據(jù)端口位。
OK,暫時就這么多。