GPIO全称: General-Purpose Input/Output(通用输入输出),是一种软件运行期间能够动态配置和控制的通用引脚。在RK平台上,除了部分有专门用途的pin(比如DDR、MIPI等),其他的pin,如果不配置复用的话,默认复用状态都是GPIO。RK的GPIO驱动,对上提供的是Linux下标准的GPIO接口。Linux下有一组用户态操作GPIO的sysfs节点。应用层对GPIO编程主要就是通过操作这几个节点来实现。
YY3568上接了两个LED灯,分别为GPIO3_A4和GPIO02_B2,如下图所示:
在通用的Linux框架下面,所有GPIO都是用数字编号的。对于RK平台的芯片,其编号计算方式为:(gpio控制器号-0)*32+(端口号-‘A’)*8+索引序号,GPIO3_A4的控制器号为3,端口号为A,索引序号4,故编号为(3-0)32+08+4=100
将GPIO 100设置为用户态操作
echo 100 > /sys/class/gpio/export
将GPIO 100设置为输出
echo out > /sys/class/gpio/gpio100/direction
在GPIO 100为输出的情形下,设置电平
高电平
echo 1 > /sys/class/gpio/gpio100/value
低电平
echo 0 > /sys/class/gpio/gpio100/value
将GPIO 100设置为输入
echo in > /sys/class/gpio/gpio100/direction
在GPIO 100为输入的情形下,读取其电平,1为高,0为低
cat sys/class/gpio/gpio100/value
取消GPIO 100用户态操作
echo 100 > /sys/class/gpio/unexport
GND一定要接上
)。GND一定要接上
)。ls /dev/ttyS*
ifconfig -a
# 发送(标准帧,数据帧,ID:123,date:DEADBEEF)
cansend can0 123##1DEADBEEF
# 发送(扩展帧,数据帧,ID:00000123,date:DEADBEEF)
cansend can0 00000123##1DEADBEEF
candump can0