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口出现被复用错误的主要内容,如果未能解决你的问题,请参考以下文章

NUC980 调用GPIO口出现被复用错误

NUC980 调用GPIO口出现被复用错误

新唐NUC980使用记录:在用户应用中使用GPIO

新唐NUC980使用记录:在驱动程序中使用GPIO

SX1302官方开源代码无法在NUC980主控芯片中使用SPI片选脚

STM32F407单片机UART串口gpio口复用功能配置问题