`
折腾了一周,终于用GPIO点亮LED灯了,拍照留念下!
说说GPIO,以为和 树莓派的GPIO可以通过,但仔细看发现,除了外形相似外,在功能使用上来看还是有许多不同的。传感器可以借用,但里面的程序还是没有实现通用的。之前在树莓派上调通的程序运行在maaxboard上,没反应,所以开始了探索之路……
树莓派的GPIO接口图 第二个是maaxboard的gpio接口图
暂看很相似,但用起来就发现不同了。 在RPi.GPIO中,同时支持树莓派上的两种GPIO引脚编号。
第一种编号是BOARD编号,这和树莓派电路板上的物理引脚编号相对应。使用这种编号的好处是,你的硬件将是一直可以使用的,不用担心树莓派的版本问题。因此,在电路板升级后,你不需要重写连接器或代码。
第二种编号是BCM规则,是更底层的工作方式,它和Broadcom的片上系统中信道编号相对应。在使用一个引脚时,你需要查找信道号和物理引脚编号之间的对应规则。对于不同的树莓派版本,编写的脚本文件也可能是无法通用的。
按照maaxboard的说明书操作echo 13 > export操作,连接对于的针脚没有反应,所以判断13并非芯片上对应的gpio口;
几经周折,在网上终于找到一个关于maaxboard对于的针脚编号说明,连接如下:
maaxboard GPIO针脚对应操作说明
如GPIO pin11为板子上的第里侧第六个,编号GPIO17,这两个号不能作为/sys/class/gpio后面的编号,而gpio后面对应的编号应该为81;
具体计算方法为:11位gpiochip3内部的片址,所以用这个3-1再乘以32得到64,再用64+17=81;
这样用下面的命令:
进入gpio文件夹后,ls命令查看,里面有export 等文件夹;
然后输入:
此时会在gpio文件夹下生成一个新的gpio18文件夹,
进入gpio18文件夹继续操作;
- echo out > /sys/class/gpio/gpio81/direction
复制代码
设置GPIO81为输出端口
echo 1 > /sys/class/gpio/gpio81/value 复制代码
设定gpio81口为高电平,就可以点亮LED灯了。
- echo 0 > /sys/class/gpio/gpio81/value
复制代码
关闭LED灯;
至此就可以通过GPIO,连接更多的外设了。
但并不是所有的GPIO都有输入输出功能的,上面的那位大神已经通过测试给出了不可能的端口,早点看到这个帖子就好了,一周的时间总结的收获给大家分享下。
有的国外大神在GitHub上开源了led灯程序,和大家分享下;
maaxboard gpio led灯
里面有三个程序,运行其中的“gpio_local_led_control.py”即可。
`
|