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
# mkdir /mnt/usb
# mount /dev/block/sda2 /mnt/youyeetoo
# cd /mnt/usb
# ls
GND一定要接上
)。ls /dev/ttyS*
GND一定要接上
)。CAN(Controller Area Network)控制器局域网,是一种高效、可靠的通信协议,用于实时控制和数据交换。它最初是由德国的BOSCH公司开发的,现在已经成为国际标准ISO 11898。CAN总线采用多主竞争式总线结构,支持多节点同时发送和接收数据,具有错误检测和自动重发功能,能够有效地提高系统的可靠性和实时性。CAN广泛应用于汽车、工业自动化、机器人等领域,是现代电子系统中不可或缺的一部分。
ifconfig -a
canconfig can0 down
canconfig can0 type can bitrate 1000000 dbitrate 3000000 on
canconfig can0 up
canconfig can0 start
//或者
canconfig can0 down
canconfig can0 type can bitrate 1000000 loopback on
canconfig can0 up
canconfig can0 start
cansend can0 -v -i 12 13 12 12
candump can0