STM32中使用GPIO的总结(超强)

上传人:夏** 文档编号:556438958 上传时间:2023-04-15 格式:DOC 页数:11 大小:48.01KB
返回 下载 相关 举报
STM32中使用GPIO的总结(超强)_第1页
第1页 / 共11页
STM32中使用GPIO的总结(超强)_第2页
第2页 / 共11页
STM32中使用GPIO的总结(超强)_第3页
第3页 / 共11页
STM32中使用GPIO的总结(超强)_第4页
第4页 / 共11页
STM32中使用GPIO的总结(超强)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《STM32中使用GPIO的总结(超强)》由会员分享,可在线阅读,更多相关《STM32中使用GPIO的总结(超强)(11页珍藏版)》请在金锄头文库上搜索。

1、STM32 GPIO使用操作步骤:1. 使能GPIO对应的外设时钟例如:/使能GPIOA、GPIOB、GPIOC对应的外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC , ENABLE);2. 声明一个GPIO_InitStructure结构体例如:GPIO_InitTypeDef GPIO_InitStructure;3. 选择待设置的GPIO管脚例如:/* 选择待设置的GPIO第7、8、9管脚位 ,中间加“|”符号 */GPIO_InitStructure

2、.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;4. 设置选中GPIO管脚的速率例如:/* 设置选中GPIO管脚的速率为最高速率2MHz */GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;/最高速率2MHz5. 设置选中GPIO管脚的模式例如:/* 设置选中GPIO管脚的模式为开漏输出模式*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;/开漏输出模式6. 根据GPIO_InitStructure中指定的参数初始化外设GPIOX例如:/* 根据G

3、PIO_InitStructure中指定的参数初始化外设GPIOC */GPIO_Init(GPIOC, &GPIO_InitStructure);7.其他应用例: 将端口GPIOA的第10、15脚置1(高电平)GPIO_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);例:将端口GPIOA的第10、15脚置0(低电平)GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);GPIO寄存器:寄存器描述CRL端口配置低寄存器 CRH 端口配置高寄存器 IDR 端口输入数据寄存器 ODR 端口输出数据寄存器 BSRR 端口

4、位设置/复位寄存器 BRR 端口位复位寄存器LCKR 端口配置锁定寄存器 EVCR 事件控制寄存器 MAPR 复用重映射和调试I/O配置寄存器 EXTICR 外部中断线路0-15配置寄存器 GPIO库函数: 函数名 描述 GPIO_DeInit 将外设GPIOx寄存器重设为缺省值 GPIO_AFIODeInit 将复用功能(重映射事件控制和EXTI设置)重设为缺省值 GPIO_Init 根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器 GPIO_StructInit 把GPIO_InitStruct中的每一个参数按缺省值填入 GPIO_ReadInputDataBit

5、读取指定端口管脚的输入 GPIO_ReadInputData 读取指定的GPIO端口输入 GPIO_ReadOutputDataBit 读取指定端口管脚的输出 GPIO_ReadOutputData 读取指定的GPIO端口输出 GPIO_SetBits 设置指定的数据端口位 GPIO_ResetBits 清除指定的数据端口位 GPIO_WriteBit 设置或者清除指定的数据端口位 GPIO_Write 向指定GPIO数据端口写入数据 GPIO_PinLockConfig 锁定GPIO管脚设置寄存器 GPIO_EventOutputConfig 选择GPIO管脚用作事件输出 GPIO_Even

6、tOutputCmd 使能或者失能事件输出 GPIO_PinRemapConfig 改变指定管脚的映射 GPIO_EXTILineConfig 选择GPIO管脚用作外部中断线路 库函数:函数GPIO_DeInit功能描述:将外设GPIOx寄存器重设为缺省值例:GPIO_DeInit(GPIOA);函数GPIO_AFIODeInit功能描述:将复用功能(重映射事件控制和EXTI设置)重设为缺省值例:GPIO_AFIODeInit();函数GPIO_Init功能描述:根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器例:GPIO_InitTypeDef GPIO_InitSt

7、ructure; 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);GPIO_InitTypeDef structure GPIO_InitTypeDef定义于文件“stm32f10x_gpio.h”: typedef struct u16 GPIO_Pin; GPIOSpee

8、d_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; GPIO_InitTypeDef; GPIO_Pin 该参数选择待设置的GPIO管脚,使用操作符“|”可以一次选中多个管脚。可以使用下表中的任意组合。GPIO_Pin_None:无管脚被选中 GPIO_Pin_x:选中管脚x(0-15)GPIO_Pin_All:选中全部管脚GPIO_Speed GPIO_Speed:用以设置选中管脚的速率。GPIO_Speed_10MHz:最高输出速率10MHz GPIO_Speed_2MHz:最高输出速率2MHz GPIO_Speed_50MHz:最高输出速率

9、50MHz GPIO_Mode GPIO_Mode:用以设置选中管脚的工作状态。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_StructInit功能描述:把GPIO_InitStruct中的每一个参数按缺省值填入例:GPIO_InitTypeDef GPIO_InitStructur

10、e; GPIO_StructInit(&GPIO_InitStructure);GPIO_InitStruct:GPIO_Pin:GPIO_Pin_All GPIO_Speed:GPIO_Speed_2MHz GPIO_Mode:GPIO_Mode_IN_FLOATING函数GPIO_ReadInputDataBit功能描述:读取指定端口管脚的输入例:u8 ReadValue; ReadValue = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);函数GPIO_ReadInputData功能描述:读取指定的GPIO端口输入例:u16 ReadValue; R

11、eadValue = GPIO_ReadInputData(GPIOC);函数GPIO_ReadOutputDataBit功能描述:读取指定端口管脚的输出例:u8 ReadValue; ReadValue = GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_7);函数GPIO_ReadOutputData功能描述:读取指定的GPIO端口输出例:u16 ReadValue; ReadValue = GPIO_ReadOutputData(GPIOC);函数GPIO_SetBits功能描述:置位指定的数据端口位例: 将端口GPIOA的第10、15脚置1(高电平)GPI

12、O_SetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);函数GPIO_ResetBits功能描述:清除指定的数据端口位例:将端口GPIOA的第10、15脚置0(低电平)GPIO_ResetBits(GPIOA, GPIO_Pin_10 | GPIO_Pin_15);函数GPIO_WriteBit功能描述:设置或者清除指定的数据端口位例: GPIO_WriteBit(GPIOA, GPIO_Pin_15, Bit_SET);函数GPIO_Write功能描述:向指定GPIO数据端口写入数据例:GPIO_Write(GPIOA, 0x1101);函数GPIO_PinL

13、ockConfig功能描述:锁定GPIO管脚设置寄存器例:GPIO_PinLockConfig(GPIOA, GPIO_Pin_0 | GPIO_Pin_1);函数GPIO_EventOutputConfig功能描述:选择GPIO管脚用作事件输出例:GPIO_EventOutputConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);GPIO_PortSourceGPIO_PortSource用以选择用作事件输出的GPIO端口。函数GPIO_EventOutputCmd功能描述:使能或者失能事件输出例:GPIO_EventOutputConfig(GPIO

14、_PortSourceGPIOC,GPIO_PinSource6);GPIO_EventOutputCmd(ENABLE);函数GPIO_PinRemapConfig功能描述:改变指定管脚的映射例:GPIO_PinRemapConfig(GPIO_Remap_I2C1, ENABLE); 一GPIO概述1、共有8种模式,可以通过编程选择: 1.浮空输入 2.带上拉输入 3.带下拉输入 4.模拟输入 5.开漏输出(此模式可实现hotpower说的真双向IO) 6.推挽输出 7.复用功能的推挽输出 8.复用功能的开漏输出 模式7和模式8需根据具体的复用功能决定。 2、专门的寄存器(GPIOx_BSRR和GPIOx_BRR)实现对GPIO口的原子操作,即回避了设置或清除I/O端口时的“读-修改-写”操作,使得设置或清除I/O端口的操作不会被中断处理打断而造成误动作。 3、每个GPIO口都可以作为外部中断的输入,便于系统灵活设计。 4、I/O口的输出模式下,有3种输出速

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号