本文以讲解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相关推荐

  1. 转载:stm32的引脚有两种用途

    stm32的引脚有两种用途:GPIO(general purpose io)和AFIO(alternate function io) 对于一些引脚(视芯片而定),这两种用途都没有,如在64脚产品中,O ...

  2. 【STM32】引脚配置—F1与F4系列

    目录 一.stm32的GPIO模式简介 1.输入模式 2.输出模式 3.复用模式 各形式说明: 二.GPIO配置 1.GPIO初始化函数 2.外设使能函数及选择 关于使能函数的选择 3.完整的GPIO ...

  3. STM32基础入门——GPIO详解

    目录 一.GPIO的简介 二.GPIO工作模式-----输入 1.浮空输入模式 2.上拉输入模式 3.下拉输入模式 4.模拟输入模式 三.GPIO工作模式-----输出 1.开漏输出模式 2.推挽输出 ...

  4. 【STM32】Cortex_M4 GPIO口概述知识总结

    一.GPIO概述 1.什么是GPIO口? GPIO口:简单而言,就是芯片用来控制或者采集外部器件的相关信息,这个又可以称之为输入输出的端口. 2.GPIO有什么作用? 是芯片用来感知外部世界并且用来控 ...

  5. STM32 BOOT 引脚配置

    STM32 BOOT 引脚配置 在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式: BOOT1=x BOOT0=0 从用户闪存启动,芯片内置的Flash,这是正常的工作模 ...

  6. 嵌入式STM32—第一天GPIO实现led呼吸灯

    1.软件及工程环境搭建 就不介绍了,可以直接用现成的 链接:https://pan.baidu.com/s/1GaSYpNm6yh-lZZmqRdXxvQ 提取码:dy63 相关库文件 链接:http ...

  7. STM32单片机的GPIO寄存器CRL、CRH、IDR、ODR、BRSS、BRR

    STM32的寄存器多如牛毛,要一个一个的弄清楚谈何容易呀,所以我们在学习的时候要抓住重点,挑重要的进行学习和记忆,因为STM32一个一个去配置寄存器的话相当的麻烦,我们实际开发的话也不会一个一个去配置 ...

  8. PT4115使用STM32单片机引脚PWM调光

    PT4115使用STM32单片机引脚PWM调光 与上位机使用modbus与上位机使用modbus通信,能够实现0~100%亮度调节,现存问题:上电时LED灯亮一下,可能怀疑是PWM初始化太慢,直接将引 ...

  9. STM32 ADC 引脚约0.7V问题解决方法

    问题起源 作者通过STM32 adc 引脚测量外部模拟电压发现,引脚悬空的时候ADC引脚电压约为0.7V左右,当接到被测模拟电压的时候,ADC引脚的电压会稍微比被测模拟电压高1.6mV 左右,这是什么 ...

最新文章

  1. OpenCV中颜色分布直方图及其应用
  2. 使用Java 8 Streams进行编程对算法性能的影响
  3. asp.net中的post和get请求操作
  4. PowerDesigner逆向工程导入MYSQL数据库总结
  5. webpack 命令
  6. 挫败帆船行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. 【转】vue双向绑定原理分析
  8. java免费翻译api接口_多语言翻译api
  9. 国产管理软件勒索病毒大爆发
  10. Kiwi for Gmail Mac(mac gmail邮箱客户端)
  11. 在Xcode8中使用Swift2.3
  12. java web应用开发期末考试_JavaWeb期末考试A卷
  13. SDCard权限设置
  14. 12.5计算机导论课后总结
  15. 求最小公倍数的方法php,JS怎么求得最小公倍数和最大公约数
  16. TeamCenter怎样删除已发布物料
  17. 7_5.移动IP网络
  18. 【Druid】(八)Apache Druid 核心插件 Kafka Indexing Service SLS Indexing Service
  19. f_sync解决fatfs文件掉电数据丢失问题
  20. 电脑无法打开计算机是怎么回事,电脑的office软件突然打不开怎么办

热门文章

  1. 实战篇:手动编译安装微软 Linux 开源版 CBL-Mariner
  2. 梦幻西游手游300级装备、30级宝石、抽奖后台、坐骑版本搭建技术讲解
  3. 信号链(Signal Chain)芯片
  4. Excel单元格中怎么批量将两行合并成一行
  5. 参加门票6800的QCon大会,是怎样的体验?
  6. mac framework
  7. 2021年十佳优惠券返利APP排名榜 2021年用户喜欢的优惠券返利APP前10排行榜
  8. 声网首席科学家钟声:感知实时互联网
  9. [二维区间DP?] Atcoder ARC004E. Salvage Robots
  10. apache+tomcat 集群学习 点滴1