LED的GPIO初始化配置方式與上一講一致,以下是按鍵的GPIO初始化程序
- /*
- * Name : initialize
- * Description : ---
- * Author : ysloveivy.
- *
- * History
- * --------------------
- * Rev : 0.00
- * Date : 11/21/2015
- *
- * create.
- * --------------------
- */
- static int initialize(void)
- {
- GPIO_InitTypeDef GPIO_uInitStructure;
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH,ENABLE);
- //設(shè)置連接按鍵的IO端口
- GPIO_uInitStructure.GPIO_Pin = GPIO_Pin_15;
- //設(shè)置端口為輸入模式
- GPIO_uInitStructure.GPIO_Mode = GPIO_Mode_IN;
- //設(shè)置速度為第三級(jí)
- GPIO_uInitStructure.GPIO_Speed = GPIO_Speed_100MHz;
- //設(shè)置輸入端口不變化
- GPIO_uInitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
- //把設(shè)置的參數(shù)用到結(jié)構(gòu)體
- GPIO_Init(GPIOH, &GPIO_uInitStructure);
- return 0;
- }
復(fù)制代碼3、小知識(shí)
void RCC_AHB1PeriphClockCmd
(uint32_t RCC_AHB1Periph,FunctionalState NewState)
此函數(shù)為外設(shè)使能函數(shù),第一個(gè)參數(shù)為需要被使能的外設(shè),第二個(gè)參數(shù)為使能與否?赡芎芏嘧x者看到這函數(shù)不知道如何入手,不知道參數(shù)填啥子好,別急,咱先查看一下他的定義:
- void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState)
- {
- /* Check the parameters */
- assert_param(IS_RCC_AHB1_CLOCK_PERIPH(RCC_AHB1Periph));
- assert_param(IS_FUNCTIONAL_STATE(NewState));
- if (NewState != DISABLE)
- {
- RCC->AHB1ENR |= RCC_AHB1Periph;
- }
- else
- {
- RCC->AHB1ENR &= ~RCC_AHB1Periph;
- }
- }
復(fù)制代碼 注意被我標(biāo)紅的字符串,按照剛剛查定義的方法,它會(huì)告訴我們函數(shù)的參數(shù)可以填啥。如查看IS_FUNCTIONAL_STATE:
- #define IS_FUNCTIONAL_STATE(STATE)
- (((STATE) == DISABLE) || ((STATE) == ENABLE))
復(fù)制代碼我們可以看出第二個(gè)參數(shù)可填寫DISABLE(使能)和ENABLE(不使能)。
小結(jié):上面用外設(shè)的使能函數(shù)為大家介紹了查看函數(shù)的方法,此方法在實(shí)際應(yīng)用經(jīng)?梢杂玫剑(dāng)我們?cè)陂喿x、修改程序的時(shí)候,遇到哪些不太清楚的函數(shù),就可以用這種方法查看。
五、實(shí)驗(yàn)現(xiàn)象
按鍵每按下一次,ARM·LED顏色變換(紅色、綠色、藍(lán)色輪流交換)一次。
六、代碼包下載
復(fù)制網(wǎng)址到瀏覽器可下載pan.baidu.com/s/1sjrHnM9