【STM32 ARM】寄存器操作GPIO的方法
创始人
2025-01-08 09:33:37
0

文章目录

  • 前言
  • GPIO的简介
  • GPIO 通过寄存器操作
    • io_mux
    • 操作数据寄存器
      • 操作寄存器的原则
      • 简单操作寄存器
      • 高效处理寄存器
  • 总结


前言

在嵌入式系统开发中,GPIO(General Purpose Input/Output,通用输入输出)是一种非常常见的硬件接口,它可以连接和控制各种外设。STM32 ARM微控制器提供了灵活而强大的GPIO接口。然而,为了充分利用这些接口,我们需要理解如何通过寄存器操作它们。寄存器操作提供了对硬件的低级别控制,使我们能够精确地控制GPIO的行为。


GPIO的简介

这是我的之前的文章,这里也可以直接用,所以大家如果没学过,或者不熟悉可以去看看:
GPIO

GPIO 通过寄存器操作

io_mux

**IOMUX(输入/输出复用)**是CPU内部的控制器,负责给PAD赋予不同功能,使得PAD在外部展现出不同的功能;而PAD的外部就是IO引脚;因此实现IO复用。

IOMUX的作用

  • IOMUX是CPU内部的控制器,负责给PAD赋予不同功能,使得PAD在外部展现出不同的功能;而PAD的外部就是IO引脚;因此实现IO复用。
  • 一个PAD可以去链接多个模块 (module),从而实现PAD输入输出信号的复用功能;这里说明一个PAD可能有几种ALT。
  • 当需要链接一个模块并实现功能时,首先需要给PAD赋予功能(SW_MUX_CTL_PAD_x);在赋予功能后(如GPIO后)启动那些功能属性(SW_PAD_CTL_PAD_x)。

IOMUX可以设置的内容

  • IOMUX可以设置PAD的功能,例如设置为GPIO、UART、I2C等。
  • IOMUX可以设置PAD的属性,例如设置为输入模式或输出模式。
  • IOMUX可以设置PAD的电平,例如设置为高电平或低电平。

操作数据寄存器

操作寄存器的原则

操作寄存器的原则主要包括以下几点:

  1. 理解每个位的含义:一个寄存器的每个位有其不同的意义,进行不同的设置会使硬件产生不同的效果和功能。

  2. 保留其他位的值:有些情况下需要对一个寄存器中的某一位或一位进行连续的不同的甚至完全相反的设置,而其余的位要保持不变。

  3. 减少数据交换:尽量减少数据在寄存器和内存之间的交换,频繁的数据传输会增加CPU的负担并降低效率。

简单操作寄存器

如果我们要操作某一个gpio,我们想写入1,使他输出高电平,我们可以这样:

val = data_reg val = 1 | x data_reg = val 

这样我们就设置x位为1了

我们可以简单的写data_reg = 1吗,不可以的,这样会把其他的位改变的,不符合操作寄存器的原则了
我们上面刚刚的就行,但是这样比较的低效,要三部操作,很麻烦。

高效处理寄存器

对于有些处理器,他引出了set_regclr_reg
比如,你想设置gpio0,你可以让set_reg的bit0变成1就行了,那些0位就没有效果,只有那些1的才有效果
如果你想让gpio0为0,你可以让clr_reg的bit0变成1就行了,那些0位就没有效果,只有那些1的才有效果


总结

通过本文,我们了解了如何使用STM32 ARM微控制器的寄存器操作GPIO。虽然这需要对硬件有深入的理解,但寄存器操作为我们提供了更高的灵活性和控制能力。通过学习和实践,我们可以更好地理解和利用这些功能,从而创建更有效、更可靠的嵌入式系统。无论我们是在设计复杂的嵌入式应用,还是在进行硬件调试,理解寄存器操作GPIO的方法都是非常重要的。希望这篇文章能帮助你在STM32 ARM微控制器的开发道路上更进一步。

相关内容

热门资讯

推出新举措!九哥玩辅助软件安装... 推出新举措!九哥玩辅助软件安装(辅助)好像是有辅助方法(有挂工具)1、游戏颠覆性的策略玩法,独创攻略...
2026版教学!途游游戏辅助脚... 2026版教学!途游游戏辅助脚本(辅助)其实是真的有辅助脚本(有挂攻略)途游游戏辅助脚本能透视中分为...
近期!开心泉州免费辅助(辅助)... 近期!开心泉州免费辅助(辅助)其实真的是有辅助脚本(有挂秘诀)该软件可以轻松地帮助玩家将开心泉州免费...
现场直击!佛手在线做辅助下载(... 现场直击!佛手在线做辅助下载(辅助)原来存在有辅助方法(讲解有挂)佛手在线做辅助下载是不是有人用挂微...
2026版总结!都莱辅助器(辅... 2026版总结!都莱辅助器(辅助)本来真的有辅助教程(的确有挂)1、打开软件启动之后找到中间准星的标...
近期!邯郸胡乐挂辅助(辅助)都... 近期!邯郸胡乐挂辅助(辅助)都是是真的有辅助脚本(有挂秘笈)1、每一步都需要思考,不同水平的挑战会更...
这一现象值得深思!微信呢微乐游... 这一现象值得深思!微信呢微乐游戏辅助脚本(辅助)原来是真的有辅助神器(有挂教学)1、微信呢微乐游戏辅...
有玩家发现!四海茶馆游戏辅助(... 有玩家发现!四海茶馆游戏辅助(辅助)其实真的是有辅助工具(真的有挂)1、完成四海茶馆游戏辅助辅助器v...
黑科技辅助挂!青龙辅助器(辅助... 黑科技辅助挂!青龙辅助器(辅助)一贯是有辅助挂(证实有挂)1、让任何用户在无需青龙辅助器安装教程第三...
软件辅助挂!人海大厅脚本(辅助... 软件辅助挂!人海大厅脚本(辅助)切实真的是有辅助技巧(发现有挂)1、在人海大厅脚本插件功能辅助器技巧...