標(biāo)題: 初學(xué)STM32之GPIO [打印本頁]

作者: liuqq    時間: 2015-5-21 23:15
標(biāo)題: 初學(xué)STM32之GPIO
首先,什么叫GPIO 它的全稱是General Purpose Input Output,就是I/O(通用輸入/輸出),同時我們也知道51單片機的IO模式只有兩種,AVR有三種,到了STM32就更復(fù)雜些了,有八種模式了 分別是:
    (1)浮空輸入:In_Floating
    (2)帶上拉輸入:IPU(In Push_Up)
    (3)帶下拉輸入:IPD(In Push_Down)
    (4)模擬輸入:AIN(Anolog In)
    (5)開漏輸出:OUT_PD(OD 代表開漏,既Open Drain,OC代表開集,Open Collect)
    (6)推挽輸出:OUT_PP(PP代表推挽式,Push_Pull)
    (7)復(fù)用功能推挽輸出:AF_PP(AF代表復(fù)用功能,Alternate-Fuction)
    (8)復(fù)用功能開漏輸出:AF_OD
  要用IO,那就先得配置IO
配置如下
void GPIO_Config(void)
{
        /*定義一個GPIO_InitTypeDef類型的結(jié)構(gòu)體*/
        GPIO_InitTypeDef GPIO_InitStructure;
        /*開啟GPIOC的外設(shè)時鐘*/
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE);
        /*選擇要控制的GPIOC引腳*/                                                                                                                          
          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;       
        /*設(shè)置引腳模式為通用推挽輸出*/
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
        /*設(shè)置引腳速率為50MHz */   
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        /*調(diào)用庫函數(shù),初始化GPIOC*/
          GPIO_Init(GPIOC, &GPIO_InitStructure);                  
}
配置好了就可以對GPIO進行操作了(置位/復(fù)位)
先看庫函數(shù)原型吧

例好GPIO_SetBits(GPIOC,GPIO_Pin_5); GPIO_SetBits(GPIOC,GPIO_Pin_5);






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1