专栏中心

EEPW首页 > 专栏 > 如何配置GPIO为中断功能

如何配置GPIO为中断功能

发布人:TQwangbin 时间:2023-10-26 来源:工程师 发布文章
本例以触摸屏中断PE18为例1.利用 sunxi_pinctrl 的 debug 节点  

挂载文件节点,并进入相应目录:mount -t debugfs none /sys/kernel/debug            
cd /sys/kernel/debug/sunxi_pinctrl            

1.1查看 pin 的配置:  

echo PE18 > sunxi_pin            
cat sunxi_pin_configure            
图片可以看见PE18被配置为中断执行下面命令cat /proc/interrupts            
   
这里可以显示从开机到现在注册的中断以及其触发次数找到gt911中断(即PE18),此处显示,开机到现在有117次中断触发:图片点击屏幕然后再次输入指令:cat /proc/interrupts            
可以看到中断次数增加图片

1.2修改 pin 为中断  

每个 pin 都有四种属性,如复用 (function),数据 (data),驱动能力 (dlevel),上下拉 (pull),    当 (function) 为0时,表示输入, 为1输出,其它功能请具体请参考《T5_Series_User Manual_V1.0(Draft).pdf》中的<10.6 port control>小节。另外,不是所有引脚都有中断功能,中断一般是(function)6执行下面命令cat /proc/interrupts            
这里可以显示从开机到现在注册的中断以及其触发次数找到gt911中断(即PE18),此处显示,开机到现在有117次中断触发:图片点击屏幕然后再次输入指令:cat /proc/interrupts            
可以看到中断次数增加    图片将PE18修改为输出模式:echo PE18 1 > function  //将PE18设置成输出            
cat sunxi_pin_configure  //查看修改情况            
点击屏幕然后再次输入指令:cat /proc/interrupts            
发现中断次数不再变化图片将PE18修改为中断模式:    echo PE18 6 > function  //将PE18设置成输出            
cat sunxi_pin_configure  //查看修改情况            
点击屏幕然后再次输入指令:cat /proc/interrupts            
发现中断次数变化图片

2.在设备树中  

gpio口对应手册《T5_Series_User Manual_V1.0(Draft).pdff》的<10.6port control>小节,请参考手册来阅读。对应驱动为与 dts 为:kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi            
kernel/linux-4.9/drivers/pinctrl/sunxi/pinctrl-sun50iw9p1.c            
kernel/linux-4.9/drivers/pinctrl/sunxi/pinctrl-sun50iw9p1-r.c            
kernel/linux-4.9/drivers/pinctrl/sunxi/pinctrl-sunxi.c            
   
要添加或者修改 io 口时,可以通过 dts 文件, 一般在 dts 中引脚以以下方式出现 :goodix_int = <&pio PE 18 1 0 1 0>;            
其具体格式为:name = <&pio P[A-I] [0-32]   func  drv_level pull value>;            
其中: name:驱动中使用的名子  [A-I]:表示端口号 [0-32]:表示此端口中的引脚号 <func>:表示此引脚要用作的功能,0 为输入,1 为输出,其它功能请具体请参考《T5_Series_User Manual_V1.0(Draft).pdf》中的<10.6 port control>小节。另外,不是所有引脚都有中断功能,中断一般是 func6,具体见手册。当找不到对应功能时(如常见的 func 7)表io disabled。 <pull>:是否使用上拉,0:不上下拉,1:上拉,2:下拉 <drv_level>:驱动能力(上下拉力度),可取值 0~3,越高驱动能越高。 <value>:io 的初始值如果把引脚配置为中断功能,一般在上写上6。另外,不是所有引脚都有中断功能,中断一般是 func6,具体见手册。图片下图是触摸屏中断引脚配置图片图片图片


-END-


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 嵌入式 ARM开发

相关推荐

Windows CE 开发初步(第一部)

陈渝大侠翻译的 uClinux2.6入门

米尔亮相德国嵌入式展2026 Embedded World

嵌入式看门狗如何提升系统稳定性

汽车存储器新突破:8nm128Mb嵌入式MRAM的研发

华清远见嵌入式在线视频教程——1、走近嵌入式系统

视频 2008-07-08

从COM到SMARC再到OSM:嵌入式计算模块的发展

第一讲:嵌入式系统概述

展会预告!米尔邀您相约德国嵌入式展 2026Embedded World

嵌入式系统方案设计

未来倾向于UFS用于高性能嵌入式闪存

TI将边缘AI微控制器更深入地融入嵌入式设计

RK3576 + ROS2 SLAM建图与导航实战

意法半导体出厂中国制造的STM32 MCU

浅谈嵌入式LINUX系统教与学

资源下载 2007-02-09

IAR 扩展了嵌入式开发平台,提供 LTS 服务

华清远见嵌入式在线视频教程——4、基于ARM的嵌入式开发

视频 2008-07-14
更多 培训课堂
更多 焦点
更多 视频

技术专区