GPIO的配置過程


今天看到一篇很好的博文,,看這里:http://www.cnblogs.com/crazyxu/archive/2011/10/14/2212337.html

下面總結一下,加深一下理解。

要使用GPIO,首先要做五步工作:配置時鍾並使能,選擇引腳,配置引腳模式,配置引腳翻轉速度,最后調用庫函數初始化GPIO,將上面的配置寫入。

首先要了解GPIO的8種模式,真多:

    (1)浮空輸入:In_Floating

    (2)帶上拉輸入:IPU(In Push_Up)

    (3)帶下拉輸入:IPD(In Push_Down)

    (4)模擬輸入:AIN(Anolog In)             查了一下,anolog是模擬的意思。

    (5)開漏輸出:OUT_PD(OD 代表開漏,既Open Drain,OC代表開集,Open Collect)

    (6)推挽輸出:OUT_PP(PP代表推挽式,Push_Pull)

    (7)復用功能推挽輸出:AF_PP(AF代表復用功能,Alternate-Fuction)

    (8)復用功能開漏輸出:AF_OD

現在沒必要都知道,以后慢慢用到慢慢體會。

1、時鍾配置的時候剛開始就是復制模板,如下:

/*開啟GPIOB和GPIOF的外設時鍾*/
RCC_APB2PeriphClockCmd( macLED1_GPIO_CLK|macLED2_GPIO_CLK|macLED3_GPIO_CLK, ENABLE); //使能時鍾

RCC_APB2PeriphClockCmd()這個函數名字有點怪,它叫做使能或失能APB2外設時鍾,不用管它,直接復制過來就行。括號里面就是使能的外設時鍾。

2、好了,時鍾配置好了,后面可以選擇一下你要使用的管腳,多個管腳可以用或符號隔開。

/*選擇要控制的GPIOB引腳*/
GPIO_InitStructure.GPIO_Pin = macLED1_GPIO_PIN;

 

3、好了,下面是配置引腳模式;

/*設置引腳模式為通用推挽輸出*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

4、下面就是設置引腳翻轉速度了吧。

/*設置引腳速率為50MHz */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

 

5、最后一步,調用通用的庫函數,將上面的配置寫入芯片,初始化GPIO;

/*調用庫函數,初始化GPIOB0*/
GPIO_Init(macLED1_GPIO_PORT, &GPIO_InitStructure);

 

到此為止,都屬於GPIO配置函數里面的內容,配置完GPIO,就可以讓他輸出高低電平了。

先使用庫函數,等庫函數用熟練了在去看寄存器的內容,、。

GPIO_SetBits(GPIOD, GPIO_Pin_9);     這是將9號引腳置為高電平,

GPIO_ResetBits(GPIOD, GPIO_Pin_9);   低電平。

主要內容大概就是這樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM