微控制器外围功能的六部分系列之GPIO(通用输入/输出)

本文介绍了学习微控制器外围功能的六部分系列中的第一部分,该系列是 gpio(通用输入/输出)。它讨论了重要的外围设备,即 gpio,以及使用 gr-sakura 和编程提示对 gpio 进行编程,以防止“颤动”或由开关移动引起的某种程度的快速振动。
cpu 和内存是大脑。外围设备是 brawn。
mcu(微控制器)广泛用于控制所有类型的电子设备。正如我们在之前的“微控制器简介”系列中所解释的那样,mcu 由 cpu(中央处理单元)、存储器和实现各种外设支持功能的附加电路组成(见图 1)。cpu通过读取程序和以下指令进行操作:读取数据、进行计算和比较、根据比较结果生成其他操作等指令。内存的作用不仅是存储数据,还包括程序本身。
重要外设:gpio 端口
gpio(通用输入/输出)端口处理传入和传出的数字信号。作为输入端口,它可用于将从开关接收到的 on/off 信号或从传感器接收到的数字读数与 cpu 进行通信。作为输出口,它可以根据cpu指令和计算结果驱动外部操作——例如,根据计算结果驱动led显示屏,或者输出驱动信号给电机。
gpio 被称为“通用”,因为每个引脚都可以自由设置为用作输入或输出。在早期的 mcu 中,每个端口要么专门输入,要么专门输出。然而,gpio 是灵活的。如果它有 8 个引脚,您可以将它们设置为最适合您的需要:4 输入 4 输出,或 7 输入 1 输出,或任何其他组合。
请注意,当程序读取、写入和操作数字值(0 和 1)时,外部设备通常使用信号电平:低电压和高电压。gpio 处理两个方向的必要转换。让我们看看 rx63n 的 gpio 使用的基本寄存器 (*1)(见图 2)。
使用 gr-sakura 对 gpio 进行编程
为了获得 gpio 端口如何工作的一些实践知识,让我们编写一个程序,通过点亮 led 来响应按下开关。我们将使用 sakura 的“数字 i/o”库来方便我们的编程。
图 3 显示了根据开关值打开和关闭指定 led(led 0)的程序代码,其中 gpio 端口用于获取开关设置和发送 led 开/关信号。该程序以调用 pinmode 函数 (1) 的设置函数开始,该函数将连接到开关的引脚设置为输入模式,将连接到 led 的引脚设置为输出模式。我们在这里使用设置函数,因为引脚模式设置必须只进行一次。
编程提示:防止“喋喋不休”引起的问题
开关通过完成(闭合)或阻断(打开)电路来工作:当开关闭合时电流流动,而当它打开时不流动。然而,由于开关是机械装置,因此不能依靠它以瞬时和干净的方式改变电路状态。相反,开关的移动总是会产生某种程度的快速振动,这会导致短暂的中间“颤动”阶段,在该阶段电路在稳定到正确状态之前快速循环打开和关闭。您可能想尝试运行以下程序(图 4)以更好地了解实际中的喋喋不休。
所需的操作是使 led 在按下和松开开关时平稳地亮起和熄灭。但这会一直发生吗?如果在抖动过程中读取开关信号,结果是不可预测的。这就是我们在图 3 所示的程序中引入“颤动”延迟的原因。


传感器塑料外壳焊接技术,你了解多少?
变速箱倒挡工作原理有哪些 它的作用是什么
基于EP1C6Q240器件和BF533处理器实现汽车智能终端系统的设计
RT-Thread记录(七、IPC机制之邮箱、消息队列)
三星A7女王粉高清图赏
微控制器外围功能的六部分系列之GPIO(通用输入/输出)
强悍内芯加持,易德明超级3D360全景T5实测
如何提高开源嵌入式处理应用程序的性能
vivo X9怎么样?vivo X9使用评测:换上高通芯的X9有哪些与众不同的变化?
腾讯玩起车来了?腾讯持股5%成特斯拉股东
大联大基于NXP i.MX RT1170微控制器推出汽车数字仪表盘方案
AMD官方公布首张光追效果图 支持显卡最快今年底诞生
汽车尾门电机过热保护器-海川温控HC01系列
天线怎么实现导行波和空间波之间转换
超全的焊接知识汇总
华为反封闭姿态的弦外之音
一种具有屏蔽电磁干扰特性的柔性电容式力传感器
2.4GHz超低功耗有源RFID标签系统SoC单芯片——Si24R2E
成都市政府再次出台集成电路支持新政 成都集成电路产业将迎新一轮起飞
未来将近!全球第一辆全尺寸无人公交车上路测试