嵌入式爱好者

gpio的复用

2020-10-30 13:47| 发布者: xhh| 查看: 1293| 评论: 0

类目: i.MX8MM系列产品  >  Linux     文档编号: 432

以复用UART3TXD复用成GPIO

步骤1

imx8mm/OK8MM-linux-sdk/OK8MM-linux-kernel/include/dt-bindings/pinctrl/pins-imx8mm.h

文件中找打要复用的引脚的宏定义,如下

UART3_TXD是原本的引脚功能名字,GPIO5_IO27是它要复用的引脚功能名字

步骤2

在设备树添加选项:需要手动添加图中的pinctr_hog_1函数,函数体中的变量就是上一步找到的宏定义,后跟的值是根据您的需求设置的

这个值的设置的是根据核心板手册,搜索IOMUXC——SW_PAD_CTL_PAD_UART3_TXD,此章节有寄存器的设置

步骤3

把设备树中复用了UART3_TXD的引脚的函数都disable

步骤4

编译、烧写

步骤5:测试

a. 计算对应 sys/class/gpio 的值 :GPIOn_IOx = (n-1)*32 + x

GPIO5_IO27则利用上公时计算:GPIO5_IO27=5-1*32+27= 155

b.GPIO5_IO27 设置为输出。

echo 155 > /sys/class/gpio/export 用于通知系统需要导出控制的 GPIO 引脚编号

echo "out" > /sys/class/gpio/gpio155/direction 控制为输出

echo "1" > /sys/class/gpio/gpio155/value 输出为高电平

或者 echo "0" > /sys/class/gpio/gpio155/value 输出为低电平

echo 155 > /sys/class/gpio/unexport 通知系统取消导出

c GPIO5_IO27 设置为输入。

echo 155 > /sys/class/gpio/export 用于通知系统需要导出控制的 GPIO 引脚编号

echo "in" > /sys/class/gpio/gpio155/direction 控制为输入

这时给该引脚接高电平,输入即为高电平,反之为低电平

echo 155 > /sys/class/gpio/unexport 通知系统取消导出

d 另外客户可以自己通过 shell 文件来控制多个 gpio 做为输入或者输出


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 16:42

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部