NUC980 调用GPIO口出现被复用错误
Posted UCSD99
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NUC980 调用GPIO口出现被复用错误相关的知识,希望对你有一定的参考价值。
NUC980 调用GPIO口出现被复用错误
错误提示
Please Check GPIOB4’s multi-function = 0x5
can’t create /sys/class/gpio/gpio36/direction: nonexistent directory
情况说明
Arm主控芯片:NUC980DK61Y
官方提供的linux内核包:官方提供的虚拟机镜像包(里面包含linux内核及交叉编译工具链)
在调用PB4口时,发现此功能已经被复用为uart7
解决方法
通过定位发现GPIO口控制程序位于此文件中
找到配置程序后,在uart7引脚数组中屏蔽PB4对应的0x14编号
//static const unsigned uart7_1_pins[] = {0x16, 0x14}; // tx, rx
static const unsigned uart7_1_pins[] = {0x16}; // tx, rx
或直接注释此引脚数组对应的复用功能选项
.name = "uart7_0_grp",
.pins = uart7_0_pins,
.num_pins = ARRAY_SIZE(uart7_0_pins),
.func = 0x6,
},
// {
// .name = "uart7_1_grp",
// .pins = uart7_1_pins,
// .num_pins = ARRAY_SIZE(uart7_1_pins),
// .func = 0x5,
// },
{
.name = "uart7_2_grp",
.pins = uart7_2_pins,
.num_pins = ARRAY_SIZE(uart7_2_pins),
.func = 0x5,
为了保险起见,在编译输出的output文件夹中也修改此两处的代码
修改完成后重新编译,便可正常使用PB4口。
以上是关于NUC980 调用GPIO口出现被复用错误的主要内容,如果未能解决你的问题,请参考以下文章