GPIO的基本概念

我们的STM32F767芯片一共有176根引脚,可以通过这些引脚与外设及外部电路和芯片之间执行交互;
这些引脚中间有36根专门用作电源引脚、复位引脚、启动模式引脚、晶振引脚、调试下载等功能;
还剩下140根引脚我们可以用于输入/输出操作,通过这部分端口的高低电平读取输入输出的数据,所以这部分引脚我们就叫做GPIO(通用输入输出端口),我们可以将GPIO口通过程序配置成输入或者输出;

140个GPIO我们怎么分配呢?

芯片将这140个GPIO分成了9组,即PA-PI;其中PA-PH每组一共有16个IO,而PI只有PI0-PI11;

GPIO的复用功能

对于STM32来说,它的外设资源非常丰富,比如说串口、Timer、ADC等,像一个timer就有好几个通道需要占用IO口,如果我们直接把这些端口定义为外设功能的话,我们可以接的外部传感器等设备的接口就非常少了,所以我们将部分的GPIO复用为外设引脚,这样一个引脚就可以通过配置设置它到底是IO口还是外设引脚,大大节省了我们的资源;

我们又如何知道具体芯片的外设资源呢?

当有新的芯片出来的时候,ST公司就会对《ST MCU 最新选型手册》进行更新,我们可以通过查阅选型手册来简单了解芯片的外设资源;

如何知道那个引脚复用了什么功能呢?

当我们拿到一款芯片的时候,我们可以通过它的datasheet来了解它的基本信息和外设资源;我们可以通过datasheet来查阅GPIO的具体功能复用情况;
我们可以通过ST的官网下载相应芯片的datasheet;

如图我们可以看见PA1复用了timer1的通道2,timer5的通道2等;

PS:我们可以通过选型手册看到芯片的工作电压在1.7V-3.6V之间,那么我们经常接外部电源的时候会接5V的电源,那么这对芯片会有影响吗?答案是不会的,我们可以从上图可以看见,I/O structure这个选项有些标注了FT,这些引脚都是可以5V容忍的,一般来说除了模拟引脚,其他引脚一般都满足;

GPIO的基本概念——基于STM32F767IGT6相关推荐

  1. 数据结构 (一) ----- 数据结构基本概念基于数组实现线性表

    相关文章: <数据结构 (一) ----- 数据结构基本概念&基于数组实现线性表> 文章目录 数据结构基本概念 一.逻辑结构 二.存储结构 三.数据结构定义 四.数据结构的通用的几 ...

  2. GPIO的8种工作模式——基于STM32F767IGT6

    对于STM32来说,GPIO有四种输入模式和四种输出模式,我们可以通过配置IO端口的相关寄存器来实现特定的效果: ps:M3系列只有输入模式有上/下拉,而M4/7系列输入/输出模式均有上/拉电阻: 浮 ...

  3. 基于STM32F767IGT6的RT-thread工程

    RT-thread版本:4.0.1,几乎是最新版 为了能让像我一样喜欢白嫖的小伙伴能不求人借会员就可以下载到资源,我把代码的百度云链接放在文章末尾,小伙伴们可以用百度云下载. 例程1:串口6中断收发, ...

  4. LPDDR4特点和基本概念--基于Hynix H9HCNNNBPUMLHR系列

    Feature 两个Channel,每个Channel有8个Bank. 对于command和address,采用SDR传输减少总引脚数量.所有的command和address在CLK上升沿锁存.每两个 ...

  5. 程序运行框架——基于STM32F767IGT6

    一.startup_stm32f767xx.s Reset_Handler引导进入SystemInit函数和main函数: 二.system_stm32f7xx.c SystemInit函数:系统初始 ...

  6. 计算机对等网络的概念,基于软件定义网络的对等网传输调度优化

    [1] 黄韬, 刘江, 魏亮, 等. 软件定义网络核心原理与应用实践[M]. 北京:人民邮电出版社,2014:3-6.(HUANG T,LIU J,WEI L,et al. SDN Core Prin ...

  7. 韦东山 IMX6ULL和正点原子_GPIO和Pinctrl子系统的使用在100ASK_IMX6ULL上机实验

    来源:百问网 作者:韦东山 本文字数:924,阅读时长:3分钟 阅读本节前先阅读: Pinctrl子系统重要概念 GPIO子系统重要概念 基于GPIO子系统的LED驱动程序 1.1 确定引脚并生成设备 ...

  8. GPIO子系统需要掌握的重要概念

    一.GPIO子系统重要概念 1.1 引入 在单片机的时代,操作GPIO需要通过寄存器来操作GPIO引脚,即使LED驱动程序,对于不同的板子,它的代码也完全不同. 当BSP工程师实现了GPIO子系统后, ...

  9. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之Pinctrl子系统和GPIO子系统的使用

    文章目录 前言 1.Pinctrl子系统 1.1.为什么有Pinctrl子系统 1.2.重要的概念 1.3.代码中怎么引用pinctrl 2.GPIO子系统 2.1.为什么有GPIO子系统 2.2.在 ...

最新文章

  1. MSSQL-最佳实践-行级别安全解决方案
  2. elementary OS 6 评测!
  3. c语言的编译过程,程序编译过程
  4. 一起学nRF51xx 20 -  移植SDK蓝牙例程
  5. jsonp java后台_jsonp与Java后端
  6. Elasticsearch 深入3
  7. 吃糖果(HDU-1205)
  8. TensorFlow 深度学习中文第二版·翻译完成
  9. SpringBoot(1)---SpringBoot2.0技术视频教程
  10. 纯新手DSP编程--5.29--基于CCS的DSP片级支持库CSL
  11. 什么是 PID 控制器:工作原理及其应用
  12. 计算机专业应届生简历表格,计算机专业应届生个人简历模板
  13. 网络通信优化之通信协议:如何优化RPC网络通信?
  14. 如何通过学习实现人生的逆袭!
  15. CSS设计指南---字体和文本的布局
  16. LabVIEW2018中文版资源分享及安装指导
  17. C语言库函数— qsort () 详解
  18. vue的PC端和移动端分辨率适配
  19. WAP上网 AT+CGDCONT=1,IP,cmwap 命令详解
  20. Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0解决方案

热门文章

  1. u盘不能拷贝超过4g的大文件吗?
  2. C语言运算符与表达式
  3. C/C++注册表【4】键值的获取,设置,删除,枚举
  4. 匈牙利算法求解指派问题(C++代码)
  5. 四、Pinia 的安装及其基本使用
  6. [Android开发]镂空的TextView,镂空字体,TextView实现镂空字体效果
  7. RPGMaker MV 插件基础04:插件指令与脚本
  8. java和javac版本不一致(三种解决方法)
  9. RANSAC算法及其代码解析
  10. Java输出100以内的素数