网站怎么做json数据,做网站所需知识,广东短视频seo搜索哪家好,手机登录不了wordpressGPIO口配置是一个历史性的问题#xff0c;不管我们使用什么MCU#xff0c;单片机也好#xff0c;ARM也好#xff0c;都离不开驱动GPIO口。Linux下有一个宏#xff0c;GPIO_GPIO_SYSFS#xff0c;打开这个宏后#xff0c;编译烧录到设备端#xff0c;去看看sys/class/gp… GPIO口配置是一个历史性的问题不管我们使用什么MCU单片机也好ARM也好都离不开驱动GPIO口。Linux下有一个宏GPIO_GPIO_SYSFS打开这个宏后编译烧录到设备端去看看sys/class/gpio/这个目录。你会发现很多惊喜。虽然是一个小知识点但是我觉得对做Linux和安卓驱动开发的同学非常有用当别人问你怎么操作一个GPIO口的时候你不妨直接把这个链接发给他。#GPIO_GPIO_SYSFS打开后GPIO基本操作导出 /sys/class/gpio# echo 12 export设置方向 /sys/class/gpio/gpio12# echo out direction查看方向 /sys/class/gpio/gpio12# cat direction设置输出 /sys/class/gpio/gpio12# echo 1 value查看输出值 /sys/class/gpio/gpio12# cat value取消导出 /sys/class/gpio# echo 12 unexport#MTK平台提供节点给我们在命令行下对GPIO口进行配置节点如下MTK的GPIO口有点奇怪他需要一个excel表格来对比后才能知道GPIO口是哪个。比如AB2对应的是UART1的RX对应的GPIO口编号是64。这个EXCEL表格我就不给出来了因为不同的CPU的GPIO口标号也是有所不同。mtk8167_bsp:/sys/devices/platform/soc/1000b000.pinctrl # cat mt_gpioPIN: [MODE] [DIR] [DOUT] [DIN] [PULL_EN] [PULL_SEL] [IES] [SMT] [DRIVE] ( [R1] [R0] )
0: 210010100
1: 210010100
2: 010010100
3: 000111100
4: 210010100
5: 210010100
6: 210010100
7: 011110100
8: 000000100
9: 011110100
10: 010010100
.......................
119: 100111112 01
120: 100111112 01
121: 00001010ffffffff
122: 10001010ffffffff
123: 10001010ffffffff
124: 10001010ffffffff
#所有的GPIO口配置信息都能看到其中每一位的含义如下[MODE]每个GPIO可以配置的模式可以参考这个头文件kernel-4.4/arch/arm64/boot/dts/mediatek/mt8167-pinfunc.h[DIR]0输入1输出[DOUT]作为输出引脚的高低电平0低1高[DIN]输入引脚的电平[PULL_EN]是指GPIO是否使能上拉或下拉只有当GPIO作为输入模式时才生效[PULL_SEL]上面只设置了是否使能上拉或下拉但并没有指出到底是上拉还是下拉。0下拉1上拉[IES]输入使能控制输入是否有效。[SMT]是否使能斯密特触发器[DRIVE]驱动能力,一般可取值07( [R1] [R0] )当前GPIO pin的上下拉并联电阻的使能状态1 0表示enable R1disable R0
0 1表示disable R1enable R0
1 1表示enable R1 enable R0
不打印出来表示当前的GPIO pin不支持PUPD状况即只有一个上拉电阻、一个下拉电阻。#示例一般作为GPIO模式的时候可以这么调试echo mode 66 0 mt_gpio /*设置66号位IO模式*/
echo dir 66 1 mt_gpio /*设置66号 io为输出方向*/
echo out 66 1 mt_gpio /*拉高66号io*/回复「 篮球的大肚子」进入技术群聊回复「1024」获取1000G学习资料