以复用UART3的TXD复用成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 做为输入或者输出 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-22 16:42
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.