查看: 21978|回复: 1

ROCK PI X 在Linux 下的GIPO访问例子

[复制链接]

404

主题

246

回帖

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
20408
发表于 2021-5-8 20:24:19 | 显示全部楼层 |阅读模式
https://wiki.radxa.com/RockpiX/dev/libmraa
Libmraa-rockpiX
安装 libmraa
We need to download the deb installation package first, and then install it:
  1. vms@vms-ROCK-Pi-X:~$ wget https://dl.radxa.com/rockpix/packages/libmraa-rockpix.deb
  2. vms@vms-ROCK-Pi-X:~$ sudo dpkg -i libmraa-rockpix.deb
  3. vms@vms-ROCK-Pi-X:~$ sudo apt-get install -f -y
复制代码
启用接口
请参阅ROCK Pi X GPIO引脚分配。 ROCK Pi X具有一个40针扩展接头。 每个插针均按颜色区分。
Hardware V1.0/V1.1
10 GPIO:
  1. PIN7  ISH_GPIO0
  2. PIN12 GPIO_DFX3
  3. PIN16 GPIO_DFX4
  4. PIN21 ISH_GPIO9
  5. PIN24 ISH_GPIO1
  6. PIN26 ISH_GPIO4
  7. PIN29 ISH_GPIO2
  8. PIN31 ISH_GPIO3
  9. PIN33 ISH_GPIO10
  10. PIN37 ISH_GPIO13
复制代码

I2C: x1, I2C1
  1. PIN3 I2C2_SDA
  2. PIN5 I2C2_SCL
  3. PIN19 ISH_I2C1_DATA
  4. PIN23 ISH_I2C1_CLK
复制代码
SPI: x1, SPI0(Pin#11/13/15/27)
  1. PIN11 SPI2_CLK
  2. PIN13 SPI2_MISO
  3. PIN15 SPI2_CS0
  4. PIN16 SPI2_MOSI
复制代码
UART: x1, UART1 and UART2
  1. PIN8   UART2_TX
  2. PIN10  UART2_RX
  3. PIN18  UART2_RTS
  4. PIN22  UART2_CTS
复制代码
PWM: x2, PWM0 and PWM1
  1. PIN32 PWM0
  2. PIN33 PWM1
复制代码
测试
test gpio
Use mraa-gpio to test
  1. vms@vms-ROCK-Pi-X:~$ mraa-gpio list
  2. 01        3.3v:
  3. 02          5v:
  4. 03    I2C2_SDA: I2C  
  5. 05    I2C2_SCL: I2C  
  6. 06         GND:
  7. 07   ISH_GPIO0: GPIO I2C  
  8. 08    UART2_TX: UART
  9. 09         GND:
  10. 10    UART2_RX: UART
  11. 11    SPI2_CLK: SPI  UART
  12. 12   GPIO_DFX3: GPIO
  13. 13   SPI2_MISO: SPI  UART
  14. 14         GND:
  15. 15    SPI2_CS0: SPI  
  16. 16   SPI2_MOSI: GPIO SPI  
  17. 17       +3.3V:
  18. 18   UART2_RTS: UART
  19. 19    SPI_MOSI: I2C  SPI  
  20. 20         GND:
  21. 21    SPI_MISO: GPIO SPI  
  22. 22   UART2_CTS: UART
  23. 23     SPI_CLK: I2C  SPI  
  24. 24   ISH_GPIO1: GPIO
  25. 25         GND:
  26. 26   ISH_GPIO4: GPIO
  27. 27   I2C5_DATA: I2C  
  28. 28    I2C5_CLK: I2C  
  29. 29   ISH_GPIO2: GPIO
  30. 31   ISH_GPIO3: GPIO
  31. 32        PWM0: PWM  
  32. 33        PWM1: GPIO PWM  UART
  33. 34         GND:
  34. 35    I2S1_FRM:
  35. 36    I2S1_CLK:
  36. 37  ISH_GPIO13: GPIO
  37. 38     I2S1_RX:
  38. 39         GND:
  39. 40     I2S1_TX:
  40. vms@vms-ROCK-Pi-X:~$
  41. vms@vms-ROCK-Pi-X:~$ sudo mraa-gpio set 7 1   //pin40 pull high
  42. vms@vms-ROCK-Pi-X:~$ cat /sys/class/gpio/gpio335/value
  43. 1
  44. vms@vms-ROCK-Pi-X:~$ sudo mraa-gpio set 7 0   //pin40 pull low
  45. vms@vms-ROCK-Pi-X:~$ cat /sys/class/gpio/gpio335/value
  46. 0
复制代码

测试I2C
Use mraa-i2c to test, we must have a i2c slave device , for example, we use I2C EEPROM:
  1. vms@vms-ROCK-Pi-X:~$ mraa-i2c list
  2. Bus   0: id=02 type=linux  default
  3. Bus   1: id=05 type=linux
  4. vms@vms-ROCK-Pi-X:~$ sudo mraa-i2c detect 0                                                                        
  5. 00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  6. 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
  7. 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  8. 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  9. 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  10. 50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- --
  11. 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  12. 70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  13. vms@vms-ROCK-Pi-X:~$ sudo mraa-i2c set 0 0x50 0x10 0x55
  14. Device 50, Register = 10, Value = 55
  15. vms@vms-ROCK-Pi-X:~$ sudo mraa-i2c get 0 0x50 0x10
  16. Register 0X10 = 0X55
  17. vms@vms-ROCK-Pi-X:~$
复制代码

测试Uart
Connect Rock Pi X to PC via serial cable, Open minicom in PC :
  1. PC@MYPC:~$ sudo minicom /dev/ttyUSB0
复制代码
使用mraa-uart工具在rockpix上发送信息,并在pc上查看收到的信息:
On Rock Pi X
  1. vms@vms-ROCK-Pi-X:~$ sudo mraa-uart dev 0 baud 1500000 send  data
复制代码
In minicom of PC
  1. Welcome to minicom 2.7.1

  2. OPTIONS: I18n
  3. Compiled on Aug 13 2017, 15:25:34.
  4. Port /dev/ttyUSB0, 10:22:25

  5. Press CTRL-A Z for help on special keys

  6. data
复制代码

编译例子
安装编译器和项目构建器
安装g ++编译器和cmake项目构建器
  1. vms@vms-ROCK-Pi-X:~$ sudo apt-get install cmake g++
复制代码
配置Java环境变量:
  1. vms@vms-ROCK-Pi-X:~$ sudo su     #password: rock
  2. vms@vms-ROCK-Pi-X:~# vim ./.bashrc
  3.   ...
  4.   export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-arm64
  5.   export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
  6.   export PATH=${JAVA_HOME}/bin:$PATH

  7.   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

  8. vms@vms-ROCK-Pi-X:~# source ./.bashrc
  9. vms@vms-ROCK-Pi-X:~# cp /usr/local/share/mraa . -r
  10. vms@vms-ROCK-Pi-X:~# cd mraa/examples/
  11. vms@vms-ROCK-Pi-X:~/mraa/examples# mkdir build
  12. vms@vms-ROCK-Pi-X:~/mraa/examples# cd build
  13. vms@vms-ROCK-Pi-X:~/mraa/examples/build# cmake ..; make
  14. ...
  15. [ 97%] Building CXX object c++/CMakeFiles/i2c_cpp.dir/i2c.o
  16. [100%] Linking CXX executable i2c_cpp
  17. [100%] Built target i2c_cpp
  18. vms@vms-ROCK-Pi-X:~/mraa/examples/build# ls
  19. CMakeCache.txt  CMakeFiles  Makefile  c  c++  cmake_install.cmake  java
复制代码
编译后,您可以看到生成了C,C ++和Java。 让我们看一下使用Java的示例。
Example of running Java
Go to the Java example directory and use the Java command to run the .jar package.
  1. vms@vms-ROCK-Pi-X:~/mraa/examples/build# cd java/
  2. vms@vms-ROCK-Pi-X:~/mraa/examples/build/java# ls
  3. AioA0         CMakeFiles  GpioMmapped  Isr         UartExample
  4. BlinkIO       CyclePwm3   GpioRead6    Makefile    cmake_install.cmake
  5. BlinkOnboard  Example     HelloEdison  SpiMAX7219
  6. Bmp85         FTDITest    I2cCompass   SpiMCP4261
  7. vms@vms-ROCK-Pi-X:~/mraa/examples/build/java# java -jar GpioMmapped/GpioMmapped.jar
  8. hello mraa
  9. Version: v2.1.0-7-g9d7131e
  10. Platform: ROCK PI X
复制代码
看,您已经成功运行了它。 接下来,您可以尝试自己编写Java演示。 查看这些.hpp文件可以帮助您编写自己的演示
  1. vms@vms-ROCK-Pi-X:/usr/local/include/mraa# ls
  2. aio.h       gpio.h    iio.hpp               led.hpp  types.h    uart_ow.hpp
  3. aio.hpp     gpio.hpp  iio_kernel_headers.h  pwm.h    types.hpp
  4. common.h    i2c.h     initio.h              pwm.hpp  uart.h
  5. common.hpp  i2c.hpp   initio.hpp            spi.h    uart.hpp
  6. firmata.h   iio.h     led.h                 spi.hpp  uart_ow.h
  7. vms@vms-ROCK-Pi-X:/usr/local/include/mraa#
复制代码
更多例子
可以在以下位置找到更多示例(包括用python和c ++编写的示例):
  1. /usr/local/share/mraa/examples/
复制代码



风火轮微信公众号
回复

使用道具 举报

3

主题

3

回帖

35

积分

新手上路

Rank: 1

积分
35
发表于 2021-7-8 18:14:14 | 显示全部楼层
python下,测试I2C正常,
Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import mraa
ModuleNotFoundError: No module named 'mraa'

没mraa模块,这个是libmraa带的吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|风火轮WIKI|手机版|小黑屋|深圳风火轮团队 ( 粤ICP备17095099号 )

GMT+8, 2024-4-23 20:33 , Processed in 0.052365 second(s), 19 queries .

快速回复 返回顶部 返回列表
 
【客服1】 商务合作 15289193
【客服2】 业务洽谈 13257599
【客服3】 售前咨询 510313198
【邮箱】
smartfire@smartfire.cn