STM32之引脚GPIO
本文以讲解stm32f103c8t6为例,板子上具体有多少个IO口,我们可以查看相应的数据手册来获取。
对GPIO口的简单理解是:输入输出的接口。
其输入输出模式共有8种,可以分为:
输入模式 |
输出模式 |
|
GPIO |
GPIO_Mode_AIM (模拟输入) |
GPIO_Mode_Out_OD(开漏输出) |
GPIO_Mode_IN_FLOATING (浮空输入) |
GPIO_Mode_Out_PP(推挽输出) |
|
GPIO_Mode_IPD (下拉输入) |
GPIO_Mode_AF_OD(复用开漏输出) |
|
GPIO_Mode_IPU (上拉输入) |
GPIO_Mode_AF_OD(复用推挽输出) |
下边我们通过GPIO输出点亮一颗LED灯来说GPIO的一些配置操作吧
首先看一下点亮一颗LED灯的原理图,如下:
图中原理图一端连接的是电源,则GPIO口接入低电平时LED灯亮,当接入高电平是LED灯灭。
实现的代码:
void LED_UserConfig(void)
{GPIO_InitTypeDef GPIO_InitStruct; //类似于 char a;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//开启外设时钟GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;// 模式(推挽输出)GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//设置引脚GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;速率(设置为2MHz)GPIO_Init(LED_PORT, &GPIO_InitStruct);GPIO_SetBits(LED_PORT, GPIO_Pin_5);//LOW 0 低电平
}
因为我们是让LED作为一个输出状态来显示的,所以在配置GPIO口的模式时选择了输出模式。如果我们弄一个按键来控制一个LED灯时则需要选择的模式为输入模式。
原理图如下:
按键是接低电平的,且引脚接到GPIO_Pin_1脚。
具体引脚配置代码如下:
因为按键的一段接的是低电平,所以引脚的一段接的是高电平,则设置为上拉输入。
u8 FLAG = 0;
void LED_UserConfig(void)
{GPIO_InitTypeDef GPIO_InitStruct; //类似于 char a;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//开启外设时钟GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//设置引脚GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_Init(LED_PORT, &GPIO_InitStruct);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;//上拉输入GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;//设置引脚GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;GPIO_Init(LED_PORT, &GPIO_InitStruct);//GPIO_SetBits(LED_PORT, GPIO_Pin_5);//LOW 0 低电平
}void KEY_UserConfig(void)//中断函数
{if(GPIO_ReadInputDataBit(GPIO_Pin_1,GPIOA) = RESET){if(GPIO_ReadInputDataBit(GPIO_Pin_1,GPIOA) = RESET){FLAG = 1;//标志位}while(!GPIO_ReadInputDataBit(GPIO_Pin_1,GPIOA));//松手检测}
}
STM32之引脚GPIO相关推荐
- 转载:stm32的引脚有两种用途
stm32的引脚有两种用途:GPIO(general purpose io)和AFIO(alternate function io) 对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,O ...
- 【STM32】引脚配置—F1与F4系列
目录 一.stm32的GPIO模式简介 1.输入模式 2.输出模式 3.复用模式 各形式说明: 二.GPIO配置 1.GPIO初始化函数 2.外设使能函数及选择 关于使能函数的选择 3.完整的GPIO ...
- STM32基础入门——GPIO详解
目录 一.GPIO的简介 二.GPIO工作模式-----输入 1.浮空输入模式 2.上拉输入模式 3.下拉输入模式 4.模拟输入模式 三.GPIO工作模式-----输出 1.开漏输出模式 2.推挽输出 ...
- 【STM32】Cortex_M4 GPIO口概述知识总结
一.GPIO概述 1.什么是GPIO口? GPIO口:简单而言,就是芯片用来控制或者采集外部器件的相关信息,这个又可以称之为输入输出的端口. 2.GPIO有什么作用? 是芯片用来感知外部世界并且用来控 ...
- STM32 BOOT 引脚配置
STM32 BOOT 引脚配置 在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式: BOOT1=x BOOT0=0 从用户闪存启动,芯片内置的Flash,这是正常的工作模 ...
- 嵌入式STM32—第一天GPIO实现led呼吸灯
1.软件及工程环境搭建 就不介绍了,可以直接用现成的 链接:https://pan.baidu.com/s/1GaSYpNm6yh-lZZmqRdXxvQ 提取码:dy63 相关库文件 链接:http ...
- STM32单片机的GPIO寄存器CRL、CRH、IDR、ODR、BRSS、BRR
STM32的寄存器多如牛毛,要一个一个的弄清楚谈何容易呀,所以我们在学习的时候要抓住重点,挑重要的进行学习和记忆,因为STM32一个一个去配置寄存器的话相当的麻烦,我们实际开发的话也不会一个一个去配置 ...
- PT4115使用STM32单片机引脚PWM调光
PT4115使用STM32单片机引脚PWM调光 与上位机使用modbus与上位机使用modbus通信,能够实现0~100%亮度调节,现存问题:上电时LED灯亮一下,可能怀疑是PWM初始化太慢,直接将引 ...
- STM32 ADC 引脚约0.7V问题解决方法
问题起源 作者通过STM32 adc 引脚测量外部模拟电压发现,引脚悬空的时候ADC引脚电压约为0.7V左右,当接到被测模拟电压的时候,ADC引脚的电压会稍微比被测模拟电压高1.6mV 左右,这是什么 ...
最新文章
- OpenCV中颜色分布直方图及其应用
- 使用Java 8 Streams进行编程对算法性能的影响
- asp.net中的post和get请求操作
- PowerDesigner逆向工程导入MYSQL数据库总结
- webpack 命令
- 挫败帆船行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 【转】vue双向绑定原理分析
- java免费翻译api接口_多语言翻译api
- 国产管理软件勒索病毒大爆发
- Kiwi for Gmail Mac(mac gmail邮箱客户端)
- 在Xcode8中使用Swift2.3
- java web应用开发期末考试_JavaWeb期末考试A卷
- SDCard权限设置
- 12.5计算机导论课后总结
- 求最小公倍数的方法php,JS怎么求得最小公倍数和最大公约数
- TeamCenter怎样删除已发布物料
- 7_5.移动IP网络
- 【Druid】(八)Apache Druid 核心插件 Kafka Indexing Service SLS Indexing Service
- f_sync解决fatfs文件掉电数据丢失问题
- 电脑无法打开计算机是怎么回事,电脑的office软件突然打不开怎么办
热门文章
- 实战篇:手动编译安装微软 Linux 开源版 CBL-Mariner
- 梦幻西游手游300级装备、30级宝石、抽奖后台、坐骑版本搭建技术讲解
- 信号链(Signal Chain)芯片
- Excel单元格中怎么批量将两行合并成一行
- 参加门票6800的QCon大会,是怎样的体验?
- mac framework
- 2021年十佳优惠券返利APP排名榜 2021年用户喜欢的优惠券返利APP前10排行榜
- 声网首席科学家钟声:感知实时互联网
- [二维区间DP?] Atcoder ARC004E. Salvage Robots
- apache+tomcat 集群学习 点滴1