1、GPIO入门知识

GPIO是什么?

GPIO全称general purpose input output通用输入输出端口,GPIO口既可以做输入也可以做输出,这些都是通过配置GPIO的工作模式来实现的。

·STM32FXXXIGT6:一共有9组IO口:PA~PI(PI只有PI0~PI11);一共有140个IO口:16*8+12=140

STM32的大部分引脚都除了可以当作GPIO口来使用,还可以复用为外设功能引脚,如串口等。

集体引脚复用功能查找对应的芯片数据手册即可。

2、GPIO的8种工作模式(GPIO_Mode)

看IO口电路图更容易理解

·四种输入模式

输入浮空 :外部输入直接进入IDR寄存器,施密特触发器打开

输入上拉:外部输入经过上拉进入IDR寄存器,施密特触发器打开

输入下拉:外部输入经过下拉进入IDR寄存器,施密特触发器打开

模拟输入:模拟输入时,施密特触发器关闭,直接进入模拟通道

·四种输出模式

开漏输出(带上拉或者下拉):只可以输出强低电平,高电平只能由外部上拉,适合做电流型驱动,吸收电流能力较强(一般20mA以内)

开漏复用功能(带上拉或者下拉)

推挽输出(带上拉或者下拉):可以输出高低电平

推挽复用功能(带上拉或者下拉)

·四种最大输出速度F429

-2MHz   低速

-25MHz 中速

-50MHz 快速

-100MHz 高速

对于stm32来说,上电复位后,GPIO默认为输入浮空状态,部分特殊功能引脚为特定状态。

注意复位后,调试引脚处于复用功能上拉或是下拉状态,不能直接当作IO口使用(PA15,PA14,PA13,PB4,PB3)

3、GPIO寄存器

一般而言M3,M4,M7每组都有十个寄存器,共9*10=90个寄存器

四个32位配置寄存器:

GPIOx_MODE------端口模式寄存器

GPIOx_OTYPER------端口输出类型寄存器

GPIOx_OSPEEDR------端口输出速度寄存器

GPIOx_PUPDR------端口上拉下拉寄存器

两个32位数据寄存器:

GPIOx_IDR-------输入数据寄存器

GPIOx_ODR-------输出数据寄存器

一个32位置位/复位寄存器:GPIOx_BSRR

一个32位锁存寄存器:GPIOx_LCKR

两个32位复用功能寄存器:低位GPIOx_AFRL&高位GPIOx_AFRH

转载于:https://www.cnblogs.com/vcan123/p/10415708.html

关于嵌入式学习随笔-2《GPIO基础知识》相关推荐

  1. 210学习日记(18)_ARM基础知识

    210学习日记(18) --ARM基础知识 注意: 以下大部分类容都来自网上现成的(直接拷贝过来的,然后经整理)!!!! 问1:ARM处理器工作模式有几种?各种工作模式下分别有什么特点? 答1:ARM ...

  2. 《Java并发编程实践》学习笔记之一:基础知识

    <Java并发编程实践>学习笔记之一:基础知识 1.程序与进程 1.1 程序与进程的概念 (1)程序:一组有序的静态指令,是一种静态概念:  (2)进程:是一种活动,它是由一个动作序列组成 ...

  3. 汇编学习(1)——基础知识

    汇编学习(1)--基础知识 ---谨以此系列文章记录我的汇编学习.  关于汇编 说起汇编语言,那自然不得不想到机器语言,在汇编语言尚未诞生之际,程序猿们只能非常苦逼的敲着0和1,还要记住一大堆复杂难记 ...

  4. 学习python需要什么基础-学习Python需要哪些基础知识?

    今天是腊月二十七,给各位朋友拜个早年! Python学习可以分为几个阶段,入门.进阶.应用. 先说说入门需要哪些基本的知识储备. Python因为易于学习的特点,入门很简单,掌握基本的Python知识 ...

  5. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

  6. Python学习--最完整的基础知识大全

    ##Python学习–最完整的基础知识大全 关于python的基础知识学习,网上有很多资料,今天我就把我收藏的整理一下分享给大家! #####菜鸟教程python2 #####菜鸟教程python3 ...

  7. 学习hadoop需要具备基础知识

    学习hadoop需要具备基础知识 首先整体上了解Hadoop,包括hadoop是什么,能够做什么,使用场景等,不需要考虑细节问题.在有了整体上的了解后,就开始准备系统地学习hadoop.建议:勿一味学 ...

  8. 学python需要什么基础-学习Python需要哪些基础知识?

    今天是腊月二十七,给各位朋友拜个早年! Python学习可以分为几个阶段,入门.进阶.应用. 先说说入门需要哪些基本的知识储备. Python因为易于学习的特点,入门很简单,掌握基本的Python知识 ...

  9. 08.GPIO基础知识和工作原理

    GPIO基础知识和工作原理 参考资料 1.正点原子开发板资料 <STM32FXX开发指南:库函数版本>-第六章跑马灯实验 2.STM32FxXx官方资料: F429:<STM32F4 ...

  10. 小猪的Python学习之旅 —— 1.基础知识储备

    小猪的Python学习之旅 -- 1.基础知识储备 引言: (文章比较长,建议看目录按需学习-) 以前刚学编程的时候就对Python略有耳闻,不过学校只有C,C++,Java,C#. 和PHP有句&q ...

最新文章

  1. 存储方式与介质对性能的影响
  2. python支持向量机回归_Python中支持向量机SVM的使用方法详解
  3. 建立副本名称冲突_包的建立(一)
  4. 使用php自动将文章标题或内容进行分词,添加和删除标签功能实例!
  5. 【二】Java变量与常量
  6. 2004我曾经最喜欢的歌(一)
  7. Deep learning:十六(deep networks)
  8. 一个创业公司CEO的85条感悟
  9. 个人作业7 第一阶段SCRUM冲刺(九)
  10. [Spark机器学习]基于Spark 2.0 机器学习之推荐系统实现
  11. 图片文字识别软件怎么下载
  12. 樊登读书搞定读后感_《读懂一本书:樊登读书法》读后感
  13. git提交错分支怎么办
  14. .net mysql 博客_asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
  15. 在多台终端设备的i茅台应用中,实现同时自动化预约X酒的解决方案
  16. Windows10使用浏览器崩溃复现及分析
  17. Ubuntu系统切换五笔输入法
  18. IDEA使用手记——IDEA主菜单被隐藏了!!
  19. Redis —— SpringBoot工程下的GeoHash工具类
  20. java json去掉中括号,去掉json中的中括号

热门文章

  1. 泰山OFFICE笑而不语
  2. 解决办法:java.lang.NoClassDefFoundError
  3. 肯定存在无摩擦力的材料
  4. LINUX双击无法启动解决一例
  5. 去掉serialVersionUID的警告
  6. 解决办法: error: passing ‘const VideoFrame’ as ‘this’ argument discards qualifiers [-fpermissive]
  7. 试论《华严经》来历的可信
  8. GDI+ 保存HDC为位图文件
  9. linux 内核 介绍,Linux内核详细介绍
  10. js遍历list对象集合_Mybatis的最基本用法,遍历集合List和数组Array