单片机学习小组
直播中

王平

7年用户 1324经验值
私信 关注

NUC972怎样配置GPIO功能?

用NUC972处理器的PH7这个GPIO时,发现被用作其他功能了。怎样把这个口设置为普通GPIO?我在内核中把SD卡功能关掉了,但是显示被用作SD1_CLK这个功能。
[root ]#echo 231 >/sys/class/gpio/export
[   52.250000] Please Check GPIOH07's multi-function = 0x6
sh: write error: Invalid argument
[root@mcuzone ]#mount -t debugfs debugfs /tmp
[root@mcuzone ]#cat /tmp/gpio
GPIOs 0-319, platform/nuc970-gpio, nuc970_gpio_port:
[root@mcuzone ]#


回帖(1)

郑成枝

2024-1-8 11:31:27
在处理器内部,GPIO的多功能由寄存器GPIO_MODE来控制。要使用PH7口作为普通GPIO,需要将GPIO_MODE的对应位设置为0。按照示例所述,将PH7配置为普通GPIO的步骤如下:

1. 使用命令echo 231 >/sys/class/gpio/export 将GPIO231 PH7口导出为一个GPIO接口。

2. 使用命令mount -t debugfs debugfs /tmp 将debugfs文件系统挂载到/tmp目录。

3. 使用命令cat /sys/kernel/debug/gpio 查看当前系统中GPIO的状态。

4. 使用命令devmem 0xB0200100 32 0x6CFCFC04 将GPIO_MODE寄存器的相应位设置为0。

5. 再次运行cat /sys/kernel/debug/gpio查看GPIO状态,可以看到GPIO231已经被成功配置为普通GPIO。

需要注意的是,如果PH7口已经被设置为其他功能,如SD1_CLK,那么在将其配置为GPIO之前,需要先禁用该功能。在NUC972处理器中,禁用某个GPIO的多功能需要修改对应的GPIO_CTL寄存器,具体方法可以参考处理器的手册。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分