首先,什么叫GPIO 它的全稱是General Purpose Input Output,就是I/O(通用輸入/輸出),同時(shí)我們也知道51單片機(jī)的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) { /*定義一個(gè)GPIO_InitTypeDef類型的結(jié)構(gòu)體*/ GPIO_InitTypeDef GPIO_InitStructure; /*開啟GPIOC的外設(shè)時(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)用庫(kù)函數(shù),初始化GPIOC*/ GPIO_Init(GPIOC, &GPIO_InitStructure); } 配置好了就可以對(duì)GPIO進(jìn)行操作了(置位/復(fù)位)
先看庫(kù)函數(shù)原型吧
例好GPIO_SetBits(GPIOC,GPIO_Pin_5); GPIO_SetBits(GPIOC,GPIO_Pin_5);
|