STM32學習之:GPIO最簡單操作步驟
1. 啟動相應Port x的RCC(復位始終控制)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx, ENABLE);
x可以是A到G , GPIO都由APB2(高速外設)時鐘控制
2. GPIO初始結構中的三個引數賦值(該結構名需程式前定義:"GPIO_InitTypeDef GPIO_InitStructure;")
三個引數分別為
引腳:GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;
速度:GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
模式:GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
三個引數的取值可查《韌體函式庫》
3. 用GPIO初始化函式 GPIO_Init(GPIOx,&GPIO_InitStructure) ,將前面賦完值的結構定義到Port x上
x可以是A到G;
4. 接著即可用GPIO_ResetBits(GPIOx,GPIO_Pin_y) 函式將引腳置0
或 用GPIO_SetBits(GPIOx,GPIO_Pin_y) 函式將引腳置1
x可以是:A到F;
y可以是:0到15;多個可用" | "隔開,如:GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9
5. 也可以用GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_y)函式讀取輸入引腳的值
或 用GPIO_ReadOutputDataBit(GPIOx,GPIO_Pin_y)函式讀取輸出引腳的值
x可以是:A到F;
y可以是:0到15;多個可用" | "隔開,如:GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9
注:a)讀取整個Port 值的函式為GPIO_ReadInputData(GPIOx)和GPIO_ReadOutputData(GPIOx)
b)寫整個Port 值的函式為GPIO_Write(GPIOx,數值)
c)一般按前3步啟動後,被設定的GPIO引腳都會被置0(低電平)