stm32学习笔记之GPIO配置
来源:互联网 发布:目前最好的排序算法 编辑:程序博客网 时间:2024/05/16 06:24
一、GPIO配置
(1)GPIO_Mode_AIN 模拟输入
(2)GPIO_Mode_IN_FLOATING 浮空输入
(3)GPIO_Mode_IPD 下拉输入
(4)GPIO_Mode_IPU 上拉输入
(5)GPIO_Mode__OUT_OD 开漏输出
(6)GPIO_Mode_OUT_PP 推挽输出
(7)GPIO_Mode_AF_OD 复用开漏输出
(8)GPIO_Mode_AF_PP 复用推挽输出
转:STM32中GPIO的8种工作模式
二、输出速率:
1、 GPIO_Speed_10M最高输出速率10MHz
GPIO_Speed_2M最高输出速率2MHz
GPIO_Speed_50M最高输出速率50MHz
2、 输出速率是指I/O驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O的输出部分设计了多个响应速度不同的驱动电路,可根据需要自行选择)。通过选择速度来选择不同的输出驱动模块,达到最佳噪声控制与降低功耗的目的。高频的驱动电路,噪声也高当不需要高的输出频率时,选择低频驱动电路,有利于提高系统的EMI性能。当然如果需要输出高频信号,却选择了较低频率的驱动模块,很有可能会得到失真的输出信号。
3、 GPIO引脚速度与应用匹配举例:
(1)串口:波特率为115.2k,那么用2M的引脚速度就够了,省电噪声小。
(2)I2C:波特率为400k,则选用10M的GPIO引脚速度。
(3)SPI:波特率为18M或19M,则需选择50M的GPIO引脚速度。
4、 GPIO口作为输入时,输出驱动电路与端口是断开的,所以配置输出速度无意义。
5、 所有端口都有外部中断能力。为了使用外部中断线端口需配置成输入模式。
6、 GPIO口具有上锁功能,当配置好GPIO口后,可以通过程序锁住配置组合,直到下次芯片才能解锁。
7、上电瞬间或者复位期间I/O口的电平状态默认是浮空输入(高阻低功耗)。
推荐例程:跑马灯&按键输入
跑马灯GPIO配置:
void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //开启时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速率50M GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_SetBits(GPIOB,GPIO_Pin_5); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_Init(GPIOE, &GPIO_InitStructure); GPIO_SetBits(GPIOE,GPIO_Pin_5); }按键输入GPIO配置(上拉下拉也与外部电路相关):
void KEY_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入upGPIO_Init(GPIOE, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //下拉输入downGPIO_Init(GPIOA, &GPIO_InitStructure);}
- STM32学习笔记之GPIO配置问题
- stm32学习笔记之GPIO配置
- STM32-GPIO学习笔记
- STM32之GPIO笔记
- stm32之GPIO配置及库函数学习笔记——以流水灯为例
- stm32学习笔记 F1系列GPIO相关寄存器的配置
- STM32学习笔记一一GPIO
- STM32学习笔记 — 之GPIO端口篇
- STM32学习笔记 — 之GPIO端口篇
- STM32学习笔记 — 之GPIO端口篇
- STM32学习笔记 — 之GPIO端口篇
- STM32学习笔记 — 之GPIO端口篇
- STM32学习笔记之GPIO口的使用
- STM32学习笔记之GPIO口的使用
- STM32学习笔记 — 之GPIO端口篇
- STM32学习系列----STM32之GPIO
- 网页学习笔记之GPIO配置
- stm32 学习笔记-gpio +j-link
- 【hdu 5052】
- java之静态方法与非静态方法
- 自定义view之RoundImageView
- HDU5952-Counting Sheep
- 实现公告或其他字体宽度不够自动隐藏用...代替的方法
- stm32学习笔记之GPIO配置
- iOS Swift3.0异步设置任意弧度高性能圆角图片
- Unity实现简单贪吃蛇
- PAT甲级练习1027. Colors in Mars (20)
- rti dds 5.0
- 前端模板引擎
- 初探jQuery——write Less,Do More
- 造成ORA-01843 无效的月份 的一些原因
- c++ -DNDEBUG openMP优化