GPIO英文全称General-PurposeInput/OutputPorts,中文意思是通用I/O端口。由于MCU的通信外设接口众多,不可能每一外设固定一组GPIO,在MCU微控制器中,可通过软件运行期间能够动态配置和控制的引脚的状态,所以每个GPIO口除了通用输入输出功能外,还可能有其它复用功能。

在灵动微MM32L0产品中,每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)、一个32位锁定寄存器(GPIOx_LCKR)和两个复用功能选择寄存器(GPIOx_AFRH)和(GPIOx_AFRL)。

GPIO端口的每个位可以由软件分别配置成多种模式。
-输入浮空
-输入上拉
-输入下拉
-模拟输入
-开漏输出
-推挽式输出
-推挽式复用功能
-开漏复用功能

每个I/O端口可以自由编程,然而必须按照32位字访问I/O端口寄存器(不允许半字或字节访问)。GPIOx_BSRR和GPIOx_BRR寄存器允许对任何GPIO寄存器进行读/更改的独立访问;这样在读更改访问之间产生IRQ不会发生危险。

图1.I/O端口位的基本结构

1、输入浮空详解:
浮空(floating)就是逻辑器件的输入引脚既不接高电平,也不接低电平。一般实际运用时,引脚不建议悬空,易受干扰。

2、输入上拉\下拉详解:
上拉就是把电位拉高,比如拉到Vcc。上拉就是将不确定的信号通过一个电阻拉在高电平!弱强只是上拉电阻的阻值不同,没有什么严格区分。在MM32L0xxx中该上拉电阻位40k欧姆。

3、模拟输入详解:
模拟输入是指模拟信号的输入。配置模拟输入时,所有的上拉、下拉电阻和施密特触发器,均处于禁止状态,因此“输入数据寄存器”将不能反映端口上的电平状态,也就是说模拟输入配置下,CPU不能在“输入数据寄存器”上读到有效的数据。

4、开漏输出详解:
输出端相当于三极管的集电极,对输入数据寄存器的访问可得到I/O状态。可以做不同电压信号转换;多个同时级联还可以实现线与逻辑)。

5、推挽式输出详解:
可以输出高,低电平,连接数字器件;推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。

6、复用功能详解:
可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。端口必须配置成复用功能输出模式(推挽或开漏)。

初识灵动微MM32 GPIO相关推荐

  1. 灵动微MM32可替换兼容意法半导体STM32

    意法半导体(ST)是半导体供应商的翘楚,致力于与日常生活息息相关的智能的.高效能的产品及解决方案.意法半导体的产品无处不在,致力于与客户共同努力实现智能驾驶.智能工厂.智能城市和智能 家居,以及下一代 ...

  2. 灵动微MM32产品特色及应用市场

    MM32系列是灵动微电子于2020年推出的新一代通用MCU平台,旨在为客户提供更高性能.更低功耗.更高可靠性.稳定性和健壮性的微控制器.全新MM32硬件上与经典MM32全兼容,保留了2.0-5.5V宽 ...

  3. 灵动微 MM32 多路ADC-DMA配置

    一.问题 最近在使用灵动微的MM32,当用多路ADC-DMA时,出现了一些问题,所以在此记录一下 总结下来,处理了下面几个问题(这里的问题是拿到最新的SDK包,参考example没办法解决的) 多路通 ...

  4. 灵动微MM32 eMiniBoard介绍

    板子名称 MM32 eMiniBoard(MCU型号:MM32L073PF) MM32 eMiniBoard开发板照片及简介 MM32 eMiniBoard 图片 MM32 eMiniBoard 简介 ...

  5. 灵动微MM32的FSMC接口驱动TFT_LCD屏幕

    FSMC存储区域说明(挂载在AHB3总线) BANK1的基地址是0x60000000,不同的子bank地址不同,通过HADDR[27:26]这两位的值确定. HADDR[27:26] BANK SEL ...

  6. 国产灵动微MM32F3277G7P兼容STM32F103RCT6

    由于st芯片价格高且缺货严重,不少厂家想用国产芯片代替.国产32位单片机厂商上海灵动微电子便是一个不错的选择.灵动微MM32系列基于ARM Cortex-M0及Cortex-M3内核,产品包括:针对通 ...

  7. 分享灵动微国产32位MCU全新MM32F系列

    全新MM32系列是灵动微电子于2020年推出的新一代通用MCU平台,旨在为客户提供更高性能.更低功耗.更高可靠性.稳定性和健壮性的微控制器.全新MM32硬件上与经典MM32全兼容,保留了2.0-5.5 ...

  8. 使用灵动微MM32F3277G7P替换STM32F103RCT6程序死机问题解决方法

    最近st芯片价格高,想用国产芯片代替.找到灵动微电子的代理要了几片样片mm32f3277g7p.管脚兼容,但软件要使用灵动微的固件库重新编译一次,还要修改一些时钟配置函数.编译完成后下载到电路板上的芯 ...

  9. 灵动微电子MM32 MCU烧录经验分享

    最近有部分刚接触MM32 MCU的用户朋友们碰到了MCU无法进行下载的情况,然后跟我们反馈芯片有问题,最后经过技术工程师跟进,其实都是用户程序使用错误或者操作不规范等原因造成的,并非芯片有问题.如果大 ...

最新文章

  1. linux 入门-1
  2. Spring MVC 实现Excel的导入导出功能(2:Excel的导入优化和Excel的导出)
  3. Jerry的CRM Middleware(中间件)文章合集
  4. GBin1分享的10个吸引眼球的jQuery插件
  5. 使用云原生buildpacks将你的代码转换成Docker Image | 技术头条
  6. linux搭建vsftp服务器_Linux配置VSFTP服务器的方法
  7. HUSD审计报告:托管账户储备超7.87亿美元
  8. java 读取excel 文件 Unable to recognize OLE stream 错误
  9. 网上的tensorflow和cnn教程汇总
  10. linux 第六章 linux中的进程管理
  11. 康佳android 9tv,汇总:康佳电视机型与软件对应关系速查表 附电视升级方法
  12. 微信小程序云开发数据库update函数更新不了数据(已解决)
  13. 切蛋糕问题【小学二年级奥数】
  14. 充电宝为arduino供电
  15. 如何删除计算机文件类型,怎么删除win10.1电脑中的文件夹分类?
  16. C++实现基于博弈树的5x5一子棋人机对战
  17. 身份证扫描到一个PDF或图片
  18. 计算机硬盘没显示,移动硬盘不显示在我的电脑
  19. 完全用Linux编程及其后续
  20. 实现制作萝莉语音包前的准备——百度AI的使用介绍

热门文章

  1. 使用charls抓取安卓模拟器的网络请求
  2. JVM笔记——根据黑马jvm课程课件+自己总结
  3. 2017年「人工智能」大事记
  4. 如何解决Camtasia下载安装时“2503”报错
  5. php虚线_虚线 · 前端技术总结 · 看云
  6. python语音合成 标贝_让机器的声音听起来更像人声,专注语音合成前端技术的「标贝科技」完成千万级人民币融资...
  7. 计算机音乐行者,“音乐行者”胡渭康:这首歌是“心灵鸡汤”
  8. 史上最全最牛的XT800百科问答与使用指南
  9. 用Python下载网页视频
  10. 2018最新Spring Cloud 系列学习附课件全套