STM32之GPIO篇

//file :GPIO.h

#include"stm32f10x.h"
#include"misc.h"	

/*					
	GPIO使用基本步驟
	1、開啓相對應的GPIO時鐘
	2、配置引腳模式
	3、初始化相對應的引腳
	4、通過庫函數操作引腳

*/

void Gpio_Output_Set(void);		//輸出

void Gpio_Input_Set(void);		//輸入


/*************************常用的GPIO函數***********************************


uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//讀取輸入某個引腳的高低電平

uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
//讀取整組GPIO的數據

//對引腳進行置高
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

//對引腳進行清零
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

//對引腳進行置高或者清零操作
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

//對整組IO進行置1 或者清零操作
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

//設置I/O端口與EXTI中斷線的映射關係
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);


***************************************************************************/
//file :GPIO.c

#include "GPIO.h"

void Gpio_Output_Set(void)		//引腳輸出設置
{
	GPIO_InitTypeDef GPIO_InitStruct;			//參數結構體

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOE,ENABLE);
												//開啓相對應的時鐘
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;		//推輓輸出
	GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_5;				//選擇相對應的引腳
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;		//輸出速率
	
	GPIO_Init(GPIOB, &GPIO_InitStruct);			//初始化相對應的引腳
	GPIO_Init(GPIOE, &GPIO_InitStruct);

}

void Gpio_Input_Set(void)		                //引腳輸入設置
{
	GPIO_InitTypeDef GPIO_InitStruct;			//參數結構體
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
                                                //開啓相對應的時鐘
	
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;	//上拉輸入
	GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_4;		//引腳
	GPIO_Init(GPIOE, &GPIO_InitStruct);			//初始化
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章