STM32 GPIO 驱动函数 - MilkeZhang 的网络笔记

为了方便自己调用GPIO,包括使能时间,端口配置,GPIO模式,GPIO的速度重新包装了一下,虽然简单,但是以后用的时候,方便点记录一下C语言文件/////////////////////////////// // // System API 头文件 // /////////////////////////////// #include "GPIO.h" #include &q

STM32 GPIO 驱动函数

STM32 GPIO 驱动函数

阅读:536  点赞:1   留言:0


为了方便自己调用GPIO,包括使能时间,端口配置,GPIO模式,GPIO的速度

重新包装了一下,虽然简单,但是以后用的时候,方便点


记录一下

C语言文件

///////////////////////////////
//
// System API 头文件
//
///////////////////////////////
#include "GPIO.h"
#include "sys.h"


//GPIO_Mode值
//GPIO_Speed			描述
//GPIO_Mode_AIN			模拟输入 
//GPIO_Mode_IN_FLOATING   	浮空输入 
//GPIO_Mode_IPD			下拉输入 
//GPIO_Mode_IPU			上拉输入 

 //GPIO_Mode_Out_OD		开漏输出
//GPIO_Mode_Out_PP        	推挽输出 
//GPIO_Mode_AF_OD         	复用开漏输出 
//GPIO_Mode_AF_PP         	复用推挽输出

//GPIO_Speed值
//GPIO_Speed_10MHz          最高输出速率10MHz 
//GPIO_Speed_2MHz           最高输出速率2MHz 
//GPIO_Speed_2MHz          最高输出速率50MHz

// GPIO_Pin_0
// GPIO_Pin_1
// GPIO_Pin_2
// GPIO_Pin_3
// GPIO_Pin_4
// GPIO_Pin_5
// GPIO_Pin_6
// GPIO_Pin_7
// GPIO_Pin_8
// GPIO_Pin_9
// GPIO_Pin_10
// GPIO_Pin_11
// GPIO_Pin_12
// GPIO_Pin_13
// GPIO_Pin_14
// GPIO_Pin_15
// GPIO_Pin_ALL



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO A 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOA_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO B 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOB_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO C 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOC_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOC, &GPIO_InitStructure);						//根据参数初始化
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO D 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOD_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOD, &GPIO_InitStructure);						//根据参数初始化
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO E 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOE_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOE, &GPIO_InitStructure);						//根据参数初始化
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO F 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOF_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOF, &GPIO_InitStructure);						//根据参数初始化
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO G 
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOG_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed)
{
 GPIO_InitTypeDef  GPIO_InitStructure; 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);	 //使能GPIOx端口时钟 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;					//端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode;					
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed;					//速度
 GPIO_Init(GPIOG, &GPIO_InitStructure);						//根据参数初始化
}





////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化USART1	GPIO	//USART1_TX   PA.9		//USART1_RX	  PA.10	
void GPIO_UART1_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //使能GPIOx端口时钟 
	//PA09初始化   复用推挽输出 最高输出速率2MHz 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;			//复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为2MHz
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化
	//PA10初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;				//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化	
}
void GPIO_UART1_DISABLE(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 	//使能GPIOx端口时钟 
	//PA09初始化   复用推挽输出 最高输出速率2MHz 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;							//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;			//浮空输入
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;				//速度为2MHz
	GPIO_Init(GPIOA, &GPIO_InitStructure);								//根据参数初始化
	//PA10初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;							//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;			//浮空输入
	GPIO_Init(GPIOA, &GPIO_InitStructure);								//根据参数初始化	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化USART2	GPIO	//USART1_TX   PA.2		//USART1_RX	  PA.3	
void GPIO_UART2_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //使能GPIOx端口时钟 
	//PA02初始化   复用推挽输出 最高输出速率2MHz 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;			//复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为2MHz
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化
	//PA03初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化	
}
void GPIO_UART2_DISABLE(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	 //使能GPIOx端口时钟 
	//PA02初始化   复用推挽输出 最高输出速率2MHz 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为2MHz
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化
	//PA03初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_Init(GPIOA, &GPIO_InitStructure);						//根据参数初始化	
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化USART3	GPIO	//USART3_TX   PB.10	//USART3_RX	  PB.11	
void GPIO_UART3_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能GPIOx端口时钟 
	//PB10初始化   复用推挽输出 最高输出速率2MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;				//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;			//复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为2MHz
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化
	//PB11初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;				//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化	
}
void GPIO_UART3_DISABLE(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能GPIOx端口时钟 
	//PB10初始化   复用推挽输出 最高输出速率2MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为2MHz
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化
	//PB11初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化USART4	GPIO	//USART4_TX   PC.10	//USART4_RX	  PC.11	
void GPIO_UART4_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能GPIOx端口时钟 
	//PC10初始化   复用推挽输出 最高输出速率2MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;			//复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为50MHz
	GPIO_Init(GPIOC, &GPIO_InitStructure);						//根据参数初始化
	//PC11初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;						//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;		//浮空输入
	GPIO_Init(GPIOC, &GPIO_InitStructure);							//根据参数初始化	
}
void GPIO_UART4_DISABLE(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能GPIOx端口时钟 
	//PC10初始化   复用推挽输出 最高输出速率2MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为50MHz
	GPIO_Init(GPIOC, &GPIO_InitStructure);						//根据参数初始化
	//PC11初始化   浮空输入 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;	//浮空输入
	GPIO_Init(GPIOC, &GPIO_InitStructure);						//根据参数初始化	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化USART5	GPIO	//UART5_TX   PC.12		//UART5_RX	 PD.02
void GPIO_UART5_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能GPIOx端口时钟 
	//PC12初始化   复用推挽输出 最高输出速率2MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;						//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;				//复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;			//速度为2MHz
	GPIO_Init(GPIOC, &GPIO_InitStructure);							//根据参数初始化
	//PD02初始化   浮空输入 最高输出速率2MHz
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);	 //使能GPIOx端口时钟 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;						//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;		//浮空输入
	GPIO_Init(GPIOD, &GPIO_InitStructure);							//根据参数初始化	
}
void GPIO_UART5_DISABLE(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //使能GPIOx端口时钟 
	//PC12初始化   复用推挽输出 最高输出速率2MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;						//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;		//浮空输入
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;			//速度为2MHz
	GPIO_Init(GPIOC, &GPIO_InitStructure);							//根据参数初始化
	//PD02初始化   浮空输入 最高输出速率2MHz
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);	 //使能GPIOx端口时钟 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;						//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;		//浮空输入
	GPIO_Init(GPIOD, &GPIO_InitStructure);							//根据参数初始化	
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化I2C1	GPIO	//PB06初始化		//PB07初始化
void GPIO_I2C1_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能GPIOx端口时钟 
	//PB06初始化   复用推挽输出 最高输出速率50MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;		//复用开漏输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//速度为2MHz
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化
	//PB07初始化   复用推挽输出 
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;					//端口配置
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化I2C2	GPIO	//PB10初始化		//PB11初始化
void GPIO_I2C2_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure; 	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能GPIOx端口时钟 
	//PB10初始化   复用推挽输出 最高输出速率50MHz  
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;					//端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;		//复用开漏输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;		//速度为2MHz
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化
	//PB11初始化   复用推挽输出 最高输出速率2MHz
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;					//端口配置
	GPIO_Init(GPIOB, &GPIO_InitStructure);						//根据参数初始化	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//初始化SPI	GPIO
void GPIO_SPI1_Init()
{

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//SPI2初始化	PB13/PB14/PB15初始化	复用推挽输出	最高输出速率50MHz
void GPIO_SPI2_Init()
{
	 GPIO_InitTypeDef  GPIO_InitStructure; 	
	 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);			//使能GPIOx端口时钟 
	 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;	//端口配置
	 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;					//复用推挽输出		
	 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;					//速度
	 GPIO_Init(GPIOB, &GPIO_InitStructure);									//根据参数初始化
}


/******************************************************************************/
/*GPIO驱动文件,Power By Milke*/
/*End Of File*/
/******************************************************************************/







头文件

#ifndef GPIO_H
#define GPIO_H

#include "sys.h"


//GPIO_Mode值输入值:
//GPIO_Speed			描述
//GPIO_Mode_AIN			模拟输入 
//GPIO_Mode_IN_FLOATING   	浮空输入 
//GPIO_Mode_IPD			下拉输入 
//GPIO_Mode_IPU			上拉输入 
//GPIO_Mode_Out_OD        	开漏输出 
//GPIO_Mode_Out_PP        	推挽输出 
//GPIO_Mode_AF_OD         	复用开漏输出 
//GPIO_Mode_AF_PP         	复用推挽输出

//GPIO_Speed输入值:
//GPIO_Speed_10MHz          最高输出速率10MHz 
//GPIO_Speed_2MHz           最高输出速率2MHz 
//GPIO_Speed_50MHz          最高输出速率50MHz



// GPIO_Pin_x输入值:
// GPIO_Pin_0
// GPIO_Pin_1
// GPIO_Pin_2
// GPIO_Pin_3
// GPIO_Pin_4
// GPIO_Pin_5
// GPIO_Pin_6
// GPIO_Pin_7
// GPIO_Pin_8
// GPIO_Pin_9
// GPIO_Pin_10
// GPIO_Pin_11
// GPIO_Pin_12
// GPIO_Pin_13
// GPIO_Pin_14
// GPIO_Pin_15
// GPIO_Pin_ALL



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化GPIO
//GPIO_Pin_x 为Pin脚,GPIO_Mode为GPIO模式,GPIO_Speed为GPIO速率
void GPIOA_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);
void GPIOB_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);
void GPIOC_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);
void GPIOD_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);
void GPIOE_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);
void GPIOF_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);
void GPIOG_Init(uint16_t GPIO_Pin_x,GPIOMode_TypeDef GPIO_Mode,GPIOSpeed_TypeDef GPIO_Speed);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化USART	GPIO
void GPIO_UART1_Init(void);
void GPIO_UART2_Init(void);
void GPIO_UART3_Init(void);
void GPIO_UART4_Init(void);
void GPIO_UART5_Init(void);
void GPIO_UART1_DISABLE(void);
void GPIO_UART2_DISABLE(void);
void GPIO_UART3_DISABLE(void);
void GPIO_UART4_DISABLE(void);
void GPIO_UART5_DISABLE(void);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化I2C	GPIO
void GPIO_I2C1_Init(void);
void GPIO_I2C2_Init(void);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//初始化SPI	GPIO
void GPIO_SPI1_Init(void);
void GPIO_SPI2_Init(void);


#endif//GPIO_H




编写于:2023/3/20 17:26:37
发布 IP 属地:

版权声明

本站内容均来自网络转载或网友提供,如有侵权请及时联系我们删除!本站不承担任何争议和法律责任!


艾金森

每一个童年的梦想都值得用青春去捍卫!




用户地图 心情地图 日记地图 笔记地图 时间轴地图 投票地图 习题地图 十六一计划一个梦,很多事Day 3记又一次游完泳去逛端阳花市关于毕业后去哪儿我不爱自由#淹水的屋子治百病恐惧对我们的影响过大了降不下来的血糖求求你别想心选姐了3月20日记假期准备干的一些事情简赤jc 的日记 2024/06/29 13:12:59100日中考有感key4127 的日记 2024/06/04 23:50:03夏谢秋 的日记 2024/06/05 22:55:142024年3月21日 星期四 晴 计划不断调整,各种因缘汇聚初中她的婚礼教师节学校分配的任务罢了2024-07-13 Web开发记录【短信内部接口API集成】夏谢秋 的日记 2024/04/20 22:33:572024-05-28 Web开发记录【Bug修复 】强化目录功能放手000006-剔除恶习(5)复盘day22024-3-31旅游2天感受24暑假见面铁蛋儿 的日记 2024/03/16 22:19:16000009-无悔100-2简赤jc 的日记 2024/07/18 22:50:192024-08-02 Web开发记录【心情图片配图显示调整】【已解决】干一行厌一行夏谢秋 的日记 2024/06/06 21:04:45圈子06/06/2024不工作对低欲望的人来说真的太爽了直面恐惧夏谢秋 的日记 2024/05/31 21:29:402024年5月26日的第一篇日记龙升虎自闲 的日记 2024/08/17 15:34:092024年6月30日1:26am夏谢秋 的日记 2024/04/17 23:14:09忘掉自己是谁,成为别人需要的人。头破血流二楼有分两种。2024.4.10 论文准备投稿3月16日记有所感悟夏谢秋 的日记 2024/07/01 22:26:13及时止损就是赚对吧。对吧。虽然是小说,但有时候也要讲逻辑啊!我不怕死亡。只害怕遗忘。瑞芯微第二代8nm高性能AIOT平台 RK3576处理器 简介哲理24.7.20-8.6仿香试香无主题。【Datasheet】CH342K USB转双串口芯片爱别太迟。不想学外语的思考29/3/2024 和妈妈手机里大吵了一架仙人掌一号 的笔记 2024/07/09 10:50:44引子家用服务器被迫推移,新款服务器选择困难为无知道歉,却又羡慕年少。文章练习52024年6月19日契机。周处除三害洗牙多久一次适宜截止于20240901 我对人工智能 AI 的看法【Datasheet】QMI8658A 六轴陀螺仪芯片练习1【用户意见】2024-03-24 【Bug的修复】【Datasheet】FE2.1 USB 2.0高速7端口集线器控制器视频编解码协议 MPEG-4 和 H.264之间的区别【Datasheet】SiC461, SiC462, SiC463, SiC464 DC-DC电源芯片标题怎么起。【Datasheet】FD6288T 三个独立的半桥栅极驱动集成电路芯片怎么才算是爽文啊,反正我看的这本不是好吧记清明出行。html input 上传图片的方法20240512【Datasheet】SCT2A10STER DC-DC电源芯片20240728文章练习3jedahdohma 的笔记 2024/09/06 10:46:40你想活出怎样的人生。【2024年】个人家用电脑配置,NAS小服务器20240426如果你是别人,你也会讨厌我的关于我的房间视频编解码协议 【MPEG-4】【H.264】【H.265】【VP9】【AV1】【AVS】【VP8】春天吗。我爱我的国。我爱我的家。jedahdohma 的笔记 2024/08/16 10:01:41Better Man把脑子重新捡起来。jedahdohma 的笔记 2024/05/17 15:38:42JS 多级函数,类似class类的写法