ARM Cortex M3 系列 GPIO 端口介绍(工作方式讨论)

发布于:2024-07-17 编辑:匿名 来源:网络

一、Cortex M3 的 GPIO 端口特性 在介绍 GPIO 端口功能之前,有必要先说明一下 M3 的结构框图,以便更好地理解总线结构和GPIO功能。

地点。

  Cortex M3结构框图  从图中可以看到,GPIO端口连接到APB总线,并且M3有两个AHB转APB桥,GPIO直接连接到AHB矩阵,这可以减少CPU和DMA控制器之间的竞争,实现更高的性能。

APB 总线桥被配置为写缓冲区,允许 CPU 或 DMA 控制器直接操作 APB 外设,而无需等待总线写操作完成。

  M3数字I/O功能:高速GPIO口,其寄存器移至外设AHB总线,可按字节、半字、字寻址。

位级设置和清除寄存器允许单个指令设置和清除端口的任何位。

所有 GPIO 端口寄存器都支持 M3 位带操作。

整个端口值可以用一条指令写入。

GPIO 端口寄存器可以由 GPDMA 控制器访问,并且可以执行 DMA 数据操作以将其与 DMA 请求同步。

可以控制单个I/O端口的方向。

所有 I/O 端口在复位后默认为上拉输入。

(为什么呢?因为单片机连接的设备很多,复位后如果作为输出使用,控制器的电平状态不稳定可能会导致外围设备动作,从而造成不良影响,所以一半作为输入使用复位后的状态。

) 可产生中断的M3数字端口:PORT0和PORT2端口的每个引脚都可以提供中断功能;每个端口上的中断都可以编程为在上升沿、下降沿或边沿生成中断;边沿检测是异步的,因此可以在没有时钟的情况下运行(例如掉电模式)。

使用此功能,无需电平触发中断;可掉电唤醒;该寄存器为软件提供挂起的上升沿中断、挂起的下降沿中断和整个挂起的 GPIO 中断; GPIO0 和 GPIO2 中断和外部中断 3 个事件共享相同的 NVIC 通道。

2. GPIO 口寄存器说明 Cortex M3 引脚寄存器说明:   PINMODEx 为引脚模式选择寄存器,使用前必须配置。

  引脚模式选择寄存器位   PINMODEx  功能   复位后的值   00  引脚使能上拉电阻   00  01  继电器模式   10  该引脚无片内上拉 或下拉电阻   11  该引脚使能下拉电阻   继电器模式说明:当该引脚为逻辑高电平时,继电器模式使能上拉电阻;当引脚处于逻辑低电平时,继电器模式会启用下拉电阻,以便引脚在配置为输入且不受外部驱动时保持其最后已知状态。

PINSELx:功能选择寄存器。

用于设置PORT引脚的功能。

当每个 PINSELx 位为 0 时,它将用作 GPIO 端口。

FIOxDIR:GPIO 端口方向寄存器,单独控制每个端口引脚的方向,可以按字节(8 位)、半字(16 位)和字长(32 位)数据进行访问。

FIOxMASK:掩码寄存器。

任何写或读操作只有当寄存器相应位为“0”时才有效。

FIOxPIN:引脚值寄存器。

只要该引脚未配置为 ADC,就可以通过所有其他方式从此位读取端口的当前实际状态。

注意:如果读取 FIOPIN 寄存器,则无论物理引脚的状态如何,FIOMASK 寄存器中被“1”屏蔽的位将始终读取为 0。

FIOxSET:输出引脚的状态。

写入 1 会使相应的端口引脚产生高电平。

写0没有效果。

读取该寄存器将返回端口输出寄存器的当前内容。

只有 FIOMASK 中为 0 的位(即未屏蔽位)可以更改。

FIOxCLR:控制输出引脚的状态。

写入 1 会使相应的端口引脚产生低电平。

写0没有效果。

只有 FIOMASK 中为 0 的位(即未屏蔽位)可以更改。

2.1GPIO 端口方向寄存器 FIOxDIR (FIO0DIR??FIO4DIR-0xC??0xC) 当引脚配置为 GPIO 功能时,该寄存器可用于控制引脚的方向。

不一定要根据每个引脚的功能来设置其方向。

注:GPIO 引脚 P0.29 和 P0.30 与 USB D+/- 引脚共用,且方向相同。

如果 FIO0DIR 寄存器中 FP0DIR 位 29 或位 30 配置为 0,则 P0.29 和 P0.30 均为输入。

如果 FP0DIR 位 29 和位 30 配置为 1,则 P0.29 和 P0.30 均为输出。

   高速 GPIO 端口方向寄存器位描述    位    符号    值    描述    复位值   31:0(字长数据) FP0DIR  FP1DIR   FP2DIR  FP3DIR  FP4DIR  0  1  控制的引脚为输入引脚   控制的引脚为输出引脚   0  字和半字的操作基本类似,只是可以通过8位寄存器或16位寄存器分别控制方向。

这里我就不解释了。

请参考《深入浅出Cortex-M3 LPC》。

  2.2GPIO 端口输出设置寄存器 FIOxSET (FIO0SET??FIO7SET - 0xC??0xC) 当引脚处于输出模式时 当配置为 GPIO 时,该寄存器在端口上产生高电平输出别针。

当该寄存器的某些位写入“1”时,相应引脚产生高电平。

写“0”没有任何作用。

如果需要引脚输出低电平或第二功能,则向 FIOxSET 中的相应位写入 1 无效。

读取 FIOxSET 寄存器返回该寄存器的值,该值由之前对 FIOxSET 和 FIOxCLR(或前面提到的 FIOxPIN)的写入确定,并且不反映任何外部环境对 I/O 引脚的影响。

通过 FIOxSET 寄存器访问的端口引脚受 FIOxMASK 寄存器中相应位的限制。

   高速 GPIO 端口输出设置寄存器位描述    位    符号    值    描述    复位值   31:0(字长数据)  FP0SET   FP1SET  FP2SET  FP3SET  FP4SET  0  1  受控引脚输出不变。

受控引脚输出设置为高电平  0  2.3GPIO 端口输出清除寄存器 FIOxCLR (FIO0CLR??FIO07CLR - 0xC01C??0xC09C) 当引脚配置为 GPIO 输入时,该寄存器在端口引脚处生成低电平输出模式。

将“1”写入某些位会导致相应引脚上出现低电平,并清除 FIOxSET 寄存器中的相应位。

写“0”没有任何作用。

如果引脚配置为输入或其他功能,则写入 FIOxCLR 对该引脚没有影响。

通过 FIOxCLR 寄存器访问的端口引脚受 FIOxMASK 寄存器中相应位的限制。

   高速 GPIO 端口输出清除寄存器 位描述    位    符号    值    描述   复位值  31:0(字长数据)    FP0CLR  FP1CLR  FP2CLR  FP3CLR  FP4CLR  0  1   受控引脚输出不变。

受控引脚输出设置为低电量 Ping  0  2.4GPIO 端口引脚值寄存器 FIOxPIN (FIO0PIN??FIO7PIN- 0xC??0xC) 该寄存器提供可配置为执行数字- 操作的端口引脚的值只有功能。

无论引脚是否配置为输入或输出、GPIO 或其他可选数字功能,该寄存器都会给出引脚的当前逻辑值。

例如,特殊端口引脚可能具有可选功能,例如 GPIO 输入、GPIO 输出、UART 接收和 PWM 输出。

无论引脚配置为何种功能,都可以从相应的 FIOxPIN 寄存器读取其当前逻辑状态。

如果引脚配置为模拟功能,则在选择模拟配置时无法读取引脚状态。

选择一个引脚作为 A/D 输入会断开该引脚的数字部分。

在这种情况下,从 FIOxPIN 寄存器读取的引脚值无效。

当写入 FIOxPIN 寄存器时,FIOxPIN 寄存器的值被保存到端口输出寄存器中,而无需使用 FIOxSET 和 FIOxCLR 寄存器来获取整个写入值。

由于此属性会影响整个端口,因此在应用时请务必小心。

通过 FIOxPIN 寄存器访问的端口引脚受 FIOxMASK 寄存器中相应位的限制。

只有屏蔽寄存器中屏蔽为 0 的引脚才与高速 GPIO 端口引脚值寄存器的当前内容相关联。

   高速 GPIO 端口引脚值寄存器位描述    位    符号    值    描述    复位值   31:0(字长数据)  FP0VAL  FP1VAL  FP2VAL  FP3VAL  FP4VAL  0  1   受控引脚输出设置为低电平 受控引脚输出设置为高电平   0  2.5 高速GPIO端口屏蔽寄存器FIOxMASK(FIO0MASK) ?FIO7MASK - 0xC??0xC) 该寄存器用于屏蔽某些端口引脚。

无法通过 FIOxPIN、FIOxSET 或 FIOxCLR 寄存器对屏蔽引脚进行写访问。

屏蔽寄存器在读取 FIOxPIN 寄存器时也会过滤相应端口的内容。

该寄存器中的“0”位允许通过读或写访问来访问相应的物理引脚。

如果该寄存器中的某个位为“1”,则相应位不会因写访问而更改,也不会在读操作时反映在更新的 FIOxPIN 寄存器中。

   高速 GPIO 端口引脚值寄存器位描述    位    符号    值    描述    复位值   31:0(字长数据)  FP0VAL FP1VAL  FP2VAL  FP3VAL  FP4VAL  0  1  受控的引脚输出设置为低级别,将受控的引脚输出设置为高级别  0  2.1GPIO端口方向寄存器寄存器(fio0dir ?? fio4dir ?? fio4dir - 0xC??0xC) 当引脚配置为 GPIO 功能时,该寄存器可用于控制引脚的方向。

不一定要根据每个引脚的功能来设置其方向。

注:GPIO 引脚 P0.29 和 P0.30 与 USB D+/- 引脚共用,且方向相同。

如果 FIO0DIR 寄存器中 FP0DIR 位 29 或位 30 配置为 0,则 P0.29 和 P0.30 均为输入。

如果 FP0DIR 位 29 和位 30 配置为 1,则 P0.29 和 P0.30 均为输出。

   高速 GPIO 端口方向寄存器位描述    位    符号    值    描述    复位值   31:0(字长数据) FP0DIR  FP1DIR   FP2DIR  FP3DIR  FP4DIR  0  1  控制的引脚为输入引脚 控制的引脚为输出引脚   0  字和半字的操作基本类似,只是可以控制通过8位寄存器或16位寄存器仅控制方向。

这里就不做解释了。

请参考《深入浅出Cortex-M3 LPC》。

  2.2GPIO 端口输出设置寄存器 FIOxSET (FIO0SET??FIO7SET - 0xC??0xC) 当引脚配置为输出模式 GPIO 时,该寄存器在端口引脚上产生高电平输出。

当该寄存器的某些位写入“1”时,相应引脚产生高电平。

写“0”没有任何作用。

如果需要引脚输出低电平或第二功能,则向 FIOxSET 中的相应位写入 1 无效。

读取 FIOxSET 寄存器返回该寄存器的值,该值由之前对 FIOxSET 和 FIOxCLR(或前面提到的 FIOxPIN)的写入确定,并且不反映任何外部环境对 I/O 引脚的影响。

通过 FIOxSET 寄存器访问的端口引脚受 FIOxMASK 寄存器中相应位的限制。

   高速 GPIO 端口输出设置寄存器位描述    位    符号    值    描述    复位值   31:0(字长数据)  FP0SET   FP1SET  FP2SET  FP3SET  FP4SET  0  1  受控引脚输出不变。

受控引脚输出设置为高电平  0  2.3GPIO 端口输出清除寄存器 FIOxCLR (FIO0CLR??FIO07CLR - 0xC01C??0xC09C) 当引脚配置为 GPIO 输入时,该寄存器在端口引脚处生成低电平输出模式。

向某些位写入“1”会导致相应引脚产生低电平并清除 FIOxSET 寄存器的相应位。

写“0”没有任何作用。

如果引脚配置为输入或其他功能,则写入 FIOxCLR 对该引脚没有影响。

ARM Cortex M3 系列 GPIO 端口介绍(工作方式讨论)

通过 FIOxCLR 寄存器访问的端口引脚受 FIOxMASK 寄存器中相应位的限制。

ARM Cortex M3 系列 GPIO 端口介绍(工作方式讨论)

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 最活跃的基金中的基金又来了

    最活跃的基金中的基金又来了

    最活跃的LP又来投资了。 投资界-解码LP获悉,近日,国家中小企业发展基金有限责任公司发布关于遴选第六批子基金管理机构的公告,现面向社会公开遴选第六批子基金管理机构国家中小企业发展基金。 国家中小企业发展基金成立于2006年,迄今已投资项目31个,规模达1亿元。 仅今年

    06-17

  • 【创业24小时】2021年12月16日

    【创业24小时】2021年12月16日

    投融资昨天国内市场共发生22起投资披露事件,其中企业服务4起(facegood量子动力、易协云、WakeData伟客数据、探路科技) )、先进制造案例4个(中科星城、中科易创、微视能源、当耀明彩)、电商案例3个(梦天家居、达瑞戴瑞、亚信星)、医疗健康案例3个(百济神州、贝纳遗传

    06-18

  • 杭州国信科技完成数亿元C轮融资

    杭州国信科技完成数亿元C轮融资

    据投资界10月19日消息,据36氪报道,杭州国信科技今日正式宣布获得数亿元C轮融资融资。 本轮融资由中信证投领投,高榕资本、海尔资本、耀途资本跟投。 A轮投资机构持续投资。 融资资金将主要用于拓展产业场景。 国芯科技成立于2007年,是全球领先的机顶盒芯片供应商之一。 研

    06-18

  • 天照猪业拟在中小板上市,已完成辅导注册,

    天照猪业拟在中小板上市,已完成辅导注册,

    天照猪业(32.OC)拟登陆中小板,已聘请招商证券作为辅导机构。 已于2020年2月27日在四川监管局指导备案。

    06-18

  • 新闻 -衣麻网获百度领投数千万元A轮融资

    新闻 -衣麻网获百度领投数千万元A轮融资

    据投资界9月7日消息,衣麻网获百度领投数千万元A轮融资,其次是信义科技。   据了解,易码网成立于2007年,隶属于友易科技。 译码网是一家专门服务于中小型翻译公司、翻译团队、兼职翻译人员的在线翻译制作平台。 目前,译马网云协作平台已具备一键去重、协同翻译、译审同步

    06-17

  • 报告:数字基础设施须加速100%可再生能源转型

    报告:数字基础设施须加速100%可再生能源转型

    创头条获悉,5月28日,国际环保组织绿色和平与工信部电子五院计量测试中心(广州赛宝计量检测中心)联合发布《中国数字基建的脱碳之路:数据中心与5G减碳潜力与挑战()》报告(以下简称《报告》)。 《报告》指出,中国全面实现碳达峰后,数字基础设施碳排放将持续增长,成为

    06-17

  • 全球最大快餐店即将在中国变身……

    全球最大快餐店即将在中国变身……

    谁在吃赛百味?它可以让一直不受中国消费者欢迎的三明治连锁店在大城市和小城镇开设商店。 作为全球门店数量最多的连锁餐饮品牌,赛百味中国的知名度和门店数量已经不再像麦当劳和肯德基那样高。 上周,地铁中国宣布了进入中国以来最大的变革。 赛百味全球总部宣布与上海馥丽

    06-21

  • Cadence中国用户大会 CDNLive 顺利落幕

    Cadence中国用户大会 CDNLive 顺利落幕

    Cadence中国用户大会CDNLive圆满落幕 2020年8月15日——Cadence电子(Cadence, Inc.,纳斯达克股票代码:CDNS)今天在上海成功举办了Cadence中国用户大会-CDNLive! CDNLive是Cadence举办的年度全球用户大会。 一年一度的CDNLive大会以Cadence创新的“智能系统设计”战略为主

    06-06

  • 深港科技创新投资基金成功签约,首期定额2亿元

    深港科技创新投资基金成功签约,首期定额2亿元

    投资界(ID:pedaily)5月27日消息,26日,投资控东海与深圳深圳-香港科创合作区发展有限公司(以下简称“深港科创”)与容韬创业投资(珠海横琴)有限公司(以下简称“深港科创”)容韬创投)拟发起设立深港科技创新投资基金,并将于同日召开深港科技创新投资基金。 创新投资

    06-17

  • 天动智能正式推出穿戴式支付产品

    天动智能正式推出穿戴式支付产品

    2019年12月4日,中国银联在上海召开年度金融智能卡合作伙伴大会,正式推出蓝牙智能卡及穿戴式支付产品解决方案。 中国广州天动智能科技有限公司在银联牵头、金雅拓支持下,同步发布全球首款可穿戴智能卡——手机钱包卡。 手机钱包卡集近场支付、远程支付、无线存款于一体。 它

    06-18

  • 据报道,京东即将达成协议,收购中国物流资产的控股权

    据报道,京东即将达成协议,收购中国物流资产的控股权

    据报道,京东即将达成协议,收购中国物流资产的控股权。

    06-18

  • 华为向运营商展示了可折叠5G手机,预计2019年正式发布

    华为向运营商展示了可折叠5G手机,预计2019年正式发布

    Techweb消息:11月20日,据韩媒报道,华为向韩国运营商展示了可折叠5G手机。 这款手机折叠后的大小和厚度与钱包相当,打开时与迷你平板电脑大小相当。 从渲染图可以看出,华为折叠手机采用了双屏设计,由一块5英寸屏幕和一块8英寸屏幕组成。 8英寸屏幕可以对折并堆叠在5英寸屏

    06-06