STM32--GPIO学习
来源:互联网 发布:mysql命令行导入数据库 编辑:程序博客网 时间:2024/05/16 10:33
摘自:http://blog.csdn.net/wangxiaobupt/article/details/18150043
八种模式:
(1)GPIO_Mode_AIN 模拟输入 //一般用在ADC上(2)GPIO_Mode_IN_FLOATING 浮空输入 //高低电平不确定,一般用在数据传输,读取电平高低
(3)GPIO_Mode_IPD 下拉输入 //默认低电平,接下拉电阻
(4)GPIO_Mode_IPU 上拉输入 //默认高电平,接上拉电阻
(5)GPIO_Mode_Out_OD 开漏输出 //若接上拉电阻,为高电平,否则为低电平。吸电流能力强。实现IIC的线与,还可以通过改变上拉电阻改变输出电平。
(6)GPIO_Mode_Out_PP 推挽输出 //可输出高低电平
(7)GPIO_Mode_AF_OD 复用开漏输出 //可开启第二功能的开漏
(8)GPIO_Mode_AF_PP 复用推挽输出 //可开启第二功能的推挽
补:
开漏形式的电路有以下几个特点
1. 利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流
2. 一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。
3. OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
编程:
1.定义GPIO结构体变量 GPIO_InitTypeDef GPIO_InitStructure;
2.开启GPIO相应的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能PB,PE端口时钟
3. 给要用的IO初始化
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
4. 初始化端口
GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5
5. 初始化结束后,可按需求置高或低。GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高
6.还可以读电平 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5) //读取E5口的电平。
0 0
- STM32 GPIO入门学习
- STM32-GPIO学习笔记
- STM32--GPIO学习
- STM32 GPIO IIC学习
- STM32学习---GPIO
- STM32 GPIO的学习
- 学习STM32(1)-IO-GPIO
- STM32 学习三 GPIO操作
- STM32学习:GPIO的模式
- STM32学习笔记一一GPIO
- STM32学习系列----STM32之GPIO
- stm32 学习笔记-gpio +j-link
- stm32学习笔记——GPIO
- STM32不完全手册学习笔记--GPIO
- STM32 Cortex M3 GPIO学习笔记
- stm32学习笔记(一) GPIO
- STM32寄存器操作方式学习-GPIO
- 【2015-1-15】STM32学习之GPIO
- Sql入门---------汇总函数
- Java内存管理机制
- Shuffle'm Up
- Java中4大基本加密算法解析
- Java反射(四)利用反射调用方法
- STM32--GPIO学习
- Linux和Windows下控制台字体颜色设置
- 简单模拟一下科目三的灯光考试
- 【POJ 2253】Frogger
- 跨浏览器的placehold
- java 基础----抽象类与接口的区别,知道区别才能准备的应用
- IOS--OC--LessonNSArray 数组
- [Java]学习笔记,随笔【三】
- 企业应用架构学习笔记