好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

gpio点亮LED图文教程.pdf

7页
  • 卖家[上传人]:ji****72
  • 文档编号:46477649
  • 上传时间:2018-06-26
  • 文档格式:PDF
  • 文档大小:398.07KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • GPIO使用教程转载需保留作者信息作者:hawkwolf 系统环境主机os:ubuntu 12.04 desktop x86 cubie os: ubuntu 12.04 desktop v1.03 HDMI下载地址:http://linux-sunxi.org/Install_Ubuntu_Linux_for_Cubieboard 这个镜像需要用livesuit刷如nand,刷如成功后在终端内执行sudo dhclient eth0解决网络问 题(如果有),执行下列命令扩容nand sudo resize2fs /dev/nandc sudo resize2fs /dev/nandd sudo resize2fs /dev/nande sudo resize2fs /dev/nandf PS:这个镜像是官方的A10镜像,支持CPU动态调频,内核是3.4.43的,集成里无线网卡 驱动,支持HDMI输出(需要VGA的下面也有链接)我的官方taobao店上买的水星无线 网卡免驱动直接识别安装软件、工具、类库 sudo apt-get install openssh-server vim追加数据源 ssh连接cubie,在终端内执行如下命令1.cd /etc/apt/sources.list.d 2. sudo cp linaro-overlay-ppa.list sunxi.list 3. sudo vi sunxi.list 4.按i建进入编辑模式,用键盘的上下左右建移动,并用删除键删除所有内容 5.复制或手敲入如下内容 # Sunxi packages deb http://dl.linux-sunxi.org/users/tom/ubuntu all main deb-src http://dl.linux-sunxi.org/users/tom/ubuntu all main 6.按ESC键,再输入:wq(冒号wq)保存退出文件。

      7. sudo apt-get update安装编译环境 PS:下面两种选择只要选择其一即可,本文使用 2 1.主机安装交叉编译环境图 1sudo apt-get install build-essential git libusb-1.0-0-dev pkg-config libncurses5- dev u-boot-tools uboot-mkimage qemu-user-static debootstrap binfmt-support -y 安装交叉编译链工具 sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y 2.cubie上安装编译环境 sudo apt-get install build-essential git libusb-1.0-0-dev pkg-config -y查看 GPIO驱动,执行如下命令 cd /lib/modules/3.4.43+/kernel/drivers/gpio 执行ls 命令,可以看到已经自带了gpio-sunxi.ko驱动 执行lsmod命令,查看系统加载了哪些驱动(默认没有sunxi_gpio) 设置开机自动加载 gpio驱动执行如下命令: 1.sudo vi /etc/modules 2.按i建进入编辑模式,用键盘的上下左右建移动,并在文件最末尾追加gpio_sunxi3.按ESC键,再输入:wq(冒号wq)保存退出 4.sudo reboot,重启cubie 5.启动后SSH链接cubie 6.执行lsmod命令,可以查看当前系统加载的驱动,下面是我的系统情况截图看到红色圈起部分证明系统自动加载了gpio驱动 修改 script.bin 1.访问 2.搜索sunxi 3.找到sunxi-tools,并跳转到sunxi-tools项目主页(PS:其他的也是有用的,目前用不到)4.点击上图红色圈圈标识的按钮复制项目git库地址 5.cd ~ 6.mkdir cubie 7.cd cubie 8.mkdir src9.cd src 10.git clone 11.等待项目克隆完成,执行cd sunxi-tools 12.执行下面的命令编译需要root用户。

      PS:开启root用户方法执行sudo passwd root命令,命令行会提示输入密码,输入两次密码即可 13.su root,输入密码进入root用户模式 14.make 15.ls,查看你就会看见fex2bin 和bin2fex了 16.将nand中的script.bin拷贝到当前目录 mkdir /mnt/mmcp1 mount /dev/mmcblk0p1 /mnt/mmcp1 cp /mnt/mmcp1/script.bin ./ 17.script.bin转为script.fex ./bin2fex script.bin > ./script.fex 18.修改script.fex vi ./script.fex 我这里禁用了基本用不到的[csi0_para]配置节 找到[csi0_para]配置节,csi_used = 1改成csi_used = 019.添加[gpio_para]配置节,非常重要,其他教程都没具体介绍 在末尾增加如下内容 [gpio_para] gpio_used = 1 gpio_num = 8 gpio_pin_1 = port:PE04 gpio_pin_2 = port:PE05 gpio_pin_3 = port:PE06 gpio_pin_4 = port:PE07 gpio_pin_5 = port:PE08 gpio_pin_6 = port:PE09 gpio_pin_7 = port:PE10 gpio_pin_8 = port:PE11PS:我这里用了8个pin,从PE04到PE11,你可以根据你外接传感器需求调整,需求较多pin脚, 可以相应的禁用其他不用的配置节,以获得更多的扩展端口供pin脚使用。

      20.超内存到500,可提高运行速度降低CPU温度,亲测降CPU温度很明显,运行稳定此步 非必须) 搜索[dram_para]配置节,将dram_clk = 480改成dram_clk = 50021.保存退出 22.将script.fex转回script.bin并放回nand ./fex2bin script.fex > ./script.bin cp ./script.bin /mnt/mmcp1/ umount /mnt/mmcp1 23.重启系统 sudo reboot测试 gpio激活、设置 gpio 1.激活引脚,需要子root用户下 根据我们在script.fex中定义的gpio的pin脚和端口配置,我要激活gpio_pin_1,他对应 的扩展端口是pe04,对应cubie板子上的U15(网口和USB口之间)的第34个针 echo 1 > /sys/class/gpio/export ls /sys/class/gpio/ 可以看到多出来一个gpio1_pe4目录,表示我们成功激活了该pin,该目录的名称存在以下规 律: gpio1_pe4的gpio1的1就是取的我们在script.fex定义的gpio_pin_1的1 gpio1_pe4的pe4取的就是我们定义的扩展端口号pe04,这里将04转换成了42.设置引脚工作模式。

      一个GPIO 引脚可以工作在 输入模式 或 输出模式 下 echo out > /sys/class/gpio/gpio1_pe4/direction cat /sys/class/gpio/gpio1_pe4/direction PS:查看pin工作模式 cat /sys/class/gpio/gpio1_pe4/value PS:查看pin的值(1=高电平,0=低电 平)3.设置pin值,点亮led echo 1 > /sys/class/gpio/gpio1_pe4/value cat /sys/class/gpio/gpio1_pe4/value物理电路级针脚识别 1.查看http://linux-sunxi.org/GPIO ,了解最权威的gpio相关知识2.引脚和端口对应位置说明,参看http://linux-sunxi.org/Cubieboard/zh_cn 3.本文配置的gpio_parao取的是pe04到pe11,从上面地址中看到在扩展端口表格的最下方部分 对应cubie板子的U15,在网卡与USB口之间的那一排pin脚如下说明是将cubie背面朝上, 网口对左手,为参考,U15为靠近设提这两排针脚。

      针脚与序号的对应关系 上面地址给出的扩展端口配置真正对应的是cubie背面,在pin脚一段标识有1的pin脚开计数为 1,他对面为2,他右面为3,如此来回数 例如pe04对应的序号是34, 需从标识1的引脚往右面数到第17个针脚对面的的即为34 需从标识1的引脚往右面数到第19个针脚对面的的即为37,为Ground(接地)物理电路 1.自备led一枚,220电阻一枚,面包线若干,面包版一块(没有用万用表测引脚电压也可以),并串 联好电路,led需串联220的电阻,否则会烧坏led前面已经设置gpio_pin_1(PE04 端口)为高电平,将cubie板上的U15的第34个针脚连接 led电路的正极,cubie板上的U15的第37个针脚连接led电路的负极,则可以点亮led全文完!PS:能够控制一个LED,那么其他传感器也不是问题参考:官方固件使用完美 GPIO 驱动教程(不是 ugly 驱动) http://cn.cubieboard.org/forum.php? mod=viewthread&tid=235&highlight=gpioCubieboard 官方 GPIO 驱动使用总结http://cn.cubieboard.org/forum.php? mod=viewthread&tid=725&highlight=gpiocubieboard GPIO 教程 http://linux-sunxi.org/GPIO。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.