找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1893|回复: 0
打印 上一主题 下一主题
收起左侧

STM32F101xx与103xx固件函数库—GPIO函数库介绍及其使用

[复制链接]
跳转到指定楼层
楼主
ID:102668 发表于 2016-1-16 05:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/**********************************************************************************************
*    名称:STM32 GPIO库函数介绍及其使用
*    时间:2012/11/22
*    作者:1318857332
***********************************************************************************************/

/**********************************************************************************************
GPIO_DeInit(GPIO_TypeDef* GPIOx);
功能:将外设GPIOx 寄存器重设为缺省值
参数:GPIOx:x 可以是A,B ,C ,D 或者E,来选择GPIO外设
例子:GPIO_DeInit(GPIOA);
***********************************************************************************************/
/**********************************************************************************************
GPIO_AFIODeInit(void);
功能:将复用功能(重映射事件控制和EXTI设置)重设为缺省值
参数:无
例子:GPIO_AFIODeInit();
***********************************************************************************************/
/**********************************************************************************************
GPIO_Init(GPIO_TypeDef* GPIOx,GPIO_InitTypeDef* GPIO_InitStruct);
功能:根据GPIO_InitStruct 中指定的参数初始化外设 GPIOx 寄存器
参数:GPIOx:x 可以是A,B ,C ,D 或者E,来选择GPIO外设
      GPIO_InitStruct:指向结构 GPIO_InitTypeDef 的指针,包含了外设GPIO的配置信息
例子:GPIO_InitTypeDef GPIO_InitStructure;
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
      GPIO_Init(GPIOA, &GPIO_InitStructure); //Configure all the GPIOA in Input Floating mode
***********************************************************************************************/
/**********************************************************************************************
GPIO_StructInit(GPIO_Ini tTypeDef* GPIO_InitStruct);
功能:把GPIO_InitStruct 中的每一个参数按缺省值填入
参数:GPIO_InitStruct:指向结构 GPIO_InitTypeDef 的指针,待初始化
例子:GPIO_InitTypeDef GPIO_InitStructure;
      GPIO_StructInit(&GPIO_InitStructure); //Initialize the GPIO Init Structure parameters
***********************************************************************************************/
/**********************************************************************************************
GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,u16 GPIO_Pin);
功能:读取指定端口管脚的输入
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
      GPIO_Pin:待读取的端口位
返回值: 输入端口管脚值
例子:ReadValue=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);//Reads the seventh pin of the GPIOB and            store it in ReadValue variable
***********************************************************************************************/
/**********************************************************************************************
GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
功能:读取指定的GPIO端口输入
参数:GPIOx:x 可以是A,B ,C ,D 或者E,来选择GPIO外设
返回值: GPIO输入数据端口值
例子:u16 ReadValue;
ReadValue=GPIO_ReadInputData(GPIOA);//Read the GPIOC input data port and store it in ReadValue
          variable
***********************************************************************************************/
/**********************************************************************************************
GPIO_ReadOutputDataBit();
功能:读取指定端口管脚的输出
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
      GPIO_Pin:待读取的端口位
返回值:输出端口管脚值
例子:u8 ReadValue;
     ReadValue=GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0);//Reads the seventh pin of the GPIOB and      store it in ReadValue variable
***********************************************************************************************/
/**********************************************************************************************
GPIO_ReadOutput(GPIO_TypeDef* GPIOx);
功能:读取指定的GPIO端口输出
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
返回值:GPIO输出数据端口值
例子:u16 ReadValue;
ReadValue=GPIO_ReadOutputData(GPIOC);//Read the GPIOC output data port and store it in ReadValue
          variable
***********************************************************************************************/
/**********************************************************************************************
GPIO_SetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
功能:设置指定的数据端口位
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
     GPIO_Pin:待设置的端口位
例子:GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);//Set the GPIOA port pin 10 and pin 15
***********************************************************************************************/
/**********************************************************************************************
GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
功能:清除指定的数据端口位
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
      GPIO_Pin:待清除的端口位
例子:GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);//Clears the GPIOA port pin 10 and pin 15
************************************************************************************************/
/***********************************************************************************************
GPIO_WriteBit(GPIO_TypeDef* GPIOx, u16 GPIO_Pin, BitAction BitVal);
功能:设置或者清除指定的数据端口位
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
      GPIO_Pin:待设置或者清除指的端口位
      BitVal: 该参数指定了待写入的值 该参数必须取枚举BitAction 的其中一个值
      Bit_RESET: 清除数据端口位
      Bit_SET: 设置数据端口位
例子:GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);//Set the GPIOA port pin 15
************************************************************************************************/
/***********************************************************************************************
GPIO_Write(GPIO_TypeDef* GPIOx, u16 PortVal);
功能:向指定GPIO数据端口写入数据
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
     PortVal:  待写入端口数据寄存器的值  
例子:GPIO_Write(GPIOA, 0x1101); //Write data to GPIOA data port
*************************************************************************************************/
/************************************************************************************************
GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, u16 GPIO_Pin);
功能:锁定GPIO管脚设置寄存器
参数:GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设
      GPIO_Pin:待锁定的端口位 该参数可以取GPIO_Pin_x(x 可以是 0-15)的任意组合
例子:GPIO_PinLockConfig(GPIOA, GPIO_Pin_0 | GPIO_Pin_1); //Lock GPIOA Pin0 and Pin1
*************************************************************************************************/
/************************************************************************************************
GPIO_EventOutputConfig(u8 GP IO_PortSource, u8 GPIO_PinSource)
功能:选择GPIO管脚用作事件输出
参数:GPIO_PortSource:  选择用作事件输出的 GPIO端口
     GPIO_PinSource :事件输出的管脚 ,该参数可以取GPIO_PinSourcex(x可以是 0-15)  
例子:GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5); //Selects the GPIOE pin 5 for       EVENT output
*************************************************************************************************/
/*************************************************************************************************
GPIO_EventOutputCmd(FunctionalState NewState) ;
功能:使能或者失能事件输出
参数:NewState: 事件输出的新状态 这个参数可以取:ENABLE 或者DISABLE
例子:GPIO_EventOutputConfig(GPIO_PortSourceGPIOC, GPIO_PinSource6);
GPIO_EventOutputCmd(ENABLE); //Enable Event Ouput to the GPIOC pin 6
**************************************************************************************************/
/*************************************************************************************************
GPIO_PinRemapConfig(u32 GPIO_Remap, FunctionalState NewState) ;
功能:改变指定管脚的映射
参数:GPIO_Remap: 选择重映射的管脚
      NewState: 管脚重映射的新状态 这个参数可以取:ENABLE 或者DISABLE
例子:GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE);//I2C1_SCL on PB.08, I2C1_SDA on PB.09
**************************************************************************************************/
/*************************************************************************************************
GPIO_EXTILineConfig(u8 GPIO _PortSource, u8  GPIO_PinSource) ;
功能:选择GPIO管脚用作外部中断线路
参数:GPIO_PortSource:  选择用作外部中断线源的 GPIO端口
      GPIO_PinSource :待设置的外部中断线路
例子:GPIO_EXTILineConfig(GPIO_PortSource_GPIOB, GPIO_PinSource8);//Selects PB.08 as EXTI Line 8
**************************************************************************************************/



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表