Nanopim1gpio 口的使用笔记

Nanopim1gpio口的使用笔记

 

Nanopi m1并未提供pythonlib,但是m2才提供,在pythongpio lib中测试,会遇到各种问题

1nanopi的介绍

NanoPi M1资源特性:

• CPUAllwinnerH3, Quad-core [email protected]

• GPUMali400MP2@600MHzSupports OpenGL ES2.0

• DDR3 RAM512MB/1GB

网络:10/100M以太网

音频:3.5mm耳机座/Via HDMI

麦克风:板载麦克风

红外:板载红外接收模块

• USB HostType A型号,USB 2.0 x 3

• MicroSD Slotx1

• MicroUSB:支持供电和数据传输,有OTG功能

视频输出: HDMI 1.41080P高清显示, CVBS

• DVP Camera接口:24pin0.5mm间距竖直贴片FPC

调试串口:4Pin2.54mm排针

• GPIO 40pin,2.54mm间距,兼容RasberryPi2的扩展GPIO,含UART, SPI, I2C, PWM, IO等管脚资源

按键:电源按键x1,复位按键x1

•PC Size: 64 x 50mm

•Power Supply: DC 5V/2A

• OS/Software: u-bootDebianUbuntu-MATEUbuntu-Core

2gpio的使用

  • gpio介绍
    • 在嵌入式设备中对GPIO的操作,一般的做法是写一个单独驱动程序。其实linux下面有一个通用的GPIO操作接口,那就是“/sys/class/gpio”方式。使用这种方法,你不需要写驱动,直接调用gpio引脚,更方便开发,内核更小。
  • 操作过程
    • Terminal中查看当前系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入Device Drivers —> GPIO Support —> /sys/class/gpio/… (sysfs interface)。
    • GPIO XX中引脚编号的计算
      • 引脚编号=控制引脚的寄存器基数+控制引脚寄存器位数;
      • 当前使用的nanopi m132为的寄存器位数
        • eg: GPIOB10那么引脚编号为=32*1+10=42
    • GPIO命令介绍
      • 对于用户层而言,如果我们需要使用那个GPIOXX口,我们只需要使用以下简单的指令就可以
        • echo xx > /sys/gpio/export #文件用于通知系统需要导出控制的GPIO引脚编号
        • 如果当前目录为 /sys/class/export
        • 还可以使用 echo xx >export
        • 注:在自己的测试过程中,会遇到权限不够到的问题,当时解决的方式是
          • su
          • "Enter your password"
          • sudo echo xx >/sys/gpio/export
        • 如果成功,在当前目录下应该生成了一个名称为“gpioXX”的目录
          • 可以通过cd gpioXX进入此目录,使用ls指令可以查看当前目录下的文件
          • 大概包含了下图所示的文件

                                                           

  • echo xx > /sys/gpio/unexport #文件用于通知系统取消导出控制的GPIO引脚编号
  • 在新建的文件下允许我们控制引脚的输入/输出模式,要把引脚设置为输入或者输出,只需要简单实用以下命令即可 direction可以接受四个参数"in","out","high","low"
    • echo "out" > /sys/class/gpio/gpioXX/direction
    • echo "in" > /sys/class/gpio/gpioXX/direction
    • 在实际测试中,发现在设置为输出模式时,并不需要使用“echo "out" > /sys/class/gpio/gpioXX/direction”指令,只需要使用
      • echo "high" > /sys/class/gpio/gpioXX/direction
      • echo "low" > /sys/class/gpio/gpioXX/direction
      • 只需要使用以上指令即可
    • 读写控制
      • 读控制
        • 在设置为输出模式时,可以通过以下指令通过GPIO读取当前端口的值
        • cat /sys/class/gpio/gpioXX/value
      • 写控制
        • 注:起初,我认为和读控制一致,即改变value的值,但是在测试过程中,并没有效果,最后使用上面的的direction可以达到效果
        • echo "high" > /sys/class/gpio/gpioXX/direction
        • echo "low" > /sys/class/gpio/gpioXX/direction
  • 当我们不需要使用XX端口时,我们可以使用命令
    • echo  xx > /sys/gpio/unexport
注:链接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章