本文档主要讲解,iMX6 开发板,通过 sys 文件的方式来控制 GPIO。
要通过 sys 控制 GPIO,需要做以下几步操作:
1 开启内核中的“GPIO_SYSFS”驱动配置;
2 确保 IO 被配置为 GPIO,并且没有驱动调用;
3 计算 GPIO 编号,通过命令或者脚本操作 GPIO。
1 GPIO_SYSFS 配置
如下图所示,可以看到内核中 GPIO_SYSFS 是默认配置的,这个驱动所有原厂 BSP 基本都会包含,一般情况下是默认配置的。
2 确保 IO 被配置为 GPIO,并且没有驱动调用
这里以 LED 的 GPIO 为例, 将 LED 的驱动去掉,确保没有驱动调用。
Device Drivers --->
Character devices --->
Enable LEDS config ---去掉,并重新编译内核烧写到开发板中。
如下图所示配置 menuconfig。
烧写到开发板中,确保没有 led 的设备节点,默认的内核中是有 led 设备节点的,如下图所示。
GPIO 的配置这里就不再重复介绍,在“iTOP-iMX6-设备树内核-IO 配置分析文档_V1.0”中有介绍。
3 计算 GPIO 编号并测试
LED 的网络标号为:KEY_ROW6
LED 对应 GPIO 的 PIN 脚名称为:GPIO_2
GPIO_2 对应的宏定义为:#define MX6QDL_PAD_GPIO_2__GPIO1_IO02
那么 GPIO_2 对应的 GPIO 的 bank[n]为 GPIO1_IO02,也就是 bank 1 的 02 号 GPIO。
GPIO 的编号计算方法为:nr=(P -1)* 32 + N;
nr 为编号,P 为 bank 号,N 为具体 bank 中的编号。
那么 P=1,N=2,通过计算得出 nr=2。
测试命令为:
echo nr > /sys/class/gpio/export
echo out > /sys/class/gpio/gpionr/direction
echo 1 > /sys/class/gpio/gpionr/value ---> 写高电平,小灯亮
echo 0 > /sys/class/gpio/gpionr/value ---> 写低电平,小灯灭
以上 nr 替换成 GPIO 的编号,则命令为:
echo 2 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio2/direction
echo 1 > /sys/class/gpio/gpio2/value --->写高电平,小灯亮
echo 0 > /sys/class/gpio/gpio2/value ---> 写低电平,小灯灭
如下图所示,执行三条命令之后小灯亮。
接着执行 echo 0 > /sys/class/gpio/gpio2/value 小灯灭。
至此,sys 测试 gpio 完成。
另外需要注意的是,本文档没有介绍 LED 对应的管脚是如何配置的,因为 LED 驱动能够运行,那么肯定在设备树文件中配置了。
如果想要掌握如何配置管脚,可以参考“iTOP-iMX6-设备树内核-IO 配置分析文档_V1.X”和“iTOP-iMX6-设备树内核-IO 扩展例程_V1.X”文档。
共3条
1/1 1 跳转至页
迅为-iMX6开发板-设备树内核-sys方式控制GPIO

共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 | |
【我踩过的那些坑】电感选型错误导致的处理器连接不上被打赏50分 | |
【我踩过的那些坑】工作那些年踩过的记忆深刻的坑被打赏10分 | |
【我踩过的那些坑】DRC使用位置错误导致的问题被打赏100分 | |
我踩过的那些坑之混合OTL功放与落地音箱被打赏50分 |