提供WiringPi、RPI(Python)库例程
请参考下方的引脚对应表格
ETH | Raspberry Pi | |
Wiring编码 | Board物理引脚序号 | |
5V | 5V | 5V |
GND | GND | GND |
RXD1 | 15 | 8 |
TXD1 | 16 | 10 |
CFG0 | 4 | 16 |
RST1 | 5 | 18 |
打开树莓派终端,输入以下指令进入配置界面
- sudo raspi-config
- 选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
- wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.68.tar.gz
- tar zxvf bcm2835-1.68.tar.gz
- cd bcm2835-1.68/
- sudo ./configure && sudo make && sudo make check && sudo make install
- # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
- sudo apt-get install wiringpi
- #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
- wget https://project-downloads.drogon.net/wiringpi-latest.deb
- sudo dpkg -i wiringpi-latest.deb
- gpio -v
- # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
- #python2
- sudo apt-get update
- sudo apt-get install python-pip
- sudo apt-get install python-pil
- sudo apt-get install python-numpy
- sudo pip install RPi.GPIO
- sudo pip install spidev
- #python3
- sudo apt-get update
- sudo apt-get install python3-pip
- sudo apt-get install python3-pil
- sudo apt-get install python3-numpy
- sudo pip3 install RPi.GPIO
- sudo pip3 install spidev
打开树莓派终端,执行:
- sudo apt-get install p7zip-full
- wget https://www.waveshare.net/w/upload/2/28/2-CH UART TO ETH_CODE.7z
- 7z x 2-CH UART TO ETH_CODE.7z -O./2-CH UART TO ETH_CODE
- sudo chmod 777 -R 2-CH UART TO ETH_CODE
- cd 2-CH UART TO ETH_CODE/RPi
- cd WiringPi
如果通过上位机配置参数,可直接运行RX_TX来测试传输是否有问题,是否丢包,否则可使用Serial Port Parameter Configuration,来进行设备参数配置。(后面会做函数介绍)
- #配置设备参数
- cd Serial Port Parameter Configuration
- make clean
- make
- ./CH9121_Config
- #运行收发程序
- cd ..
- cd RX_TX
- make clean
- make
- ./CH9121_RX_TX
- cd Python
- python3 Serial Port Parameter Configuration.py #通过上位机配置参数可直接运行下面语句即可,否则根据你的需求修改Serial Port Parameter Configuration.py里面的参数,然后运行即可。
- python3 RX_TX.py
通过串口配置参数(根据你的需求进行修改即可):
- uint8_t CH9121_Mode //模式选择
- uint8_t CH9121_LOCAL_IP[4] //本地IP
- uint8_t CH9121_GATEWAY[4] //网关
- uint8_t CH9121_SUBNET_MASK[4] //子网掩码
- uint8_t CH9121_TARGET_IP[4] //目标IP
- uint16_t CH9121_PORT1 //本地端口
- uint16_t CH9121_TARGET_PORT //目标端口
- uint32_t CH9121_BAUD_RATE //串口波特率
- void CH9121_TX_4_bytes(UCHAR data, int command); //用于模式、是否随机端口、端口是否断开网络连接、是否清空串口数据、是否开启DHCP、是否开启串口2
- void CH9121_TX_5_bytes(UWORD data, int command);//用于设置串口的端口号
- void CH9121_TX_7_bytes(UCHAR data[], int command);//用于设置IP、子网掩码、网关
- void CH9121_TX_BAUD(UDOUBLE data, int command);//用于设置串口的波特率
- void CH9121_Eed(); //更新配置参数至 EEPROM、执行配置,复位 9121、离开配置模式
用户只需修改Serial Port Parameter Configuration.py里面如下所示的值,就可以对模块进行串口参数配置:
- MODE = 1 #0:TCP Server 1:TCP Client 2:UDP Server 3:UDP Client
- GATEWAY = (169, 254, 88, 1) # GATEWAY
- TARGET_IP = (169, 254, 88, 17)# TARGET_IP
- LOCAL_IP = (169,254,88,70) # LOCAL_IP
- SUBNET_MASK = (255,255,255,0) # SUBNET_MASK
- LOCAL_PORT1 = 5000 # LOCAL_PORT1
- LOCAL_PORT2 = 4000 # LOCAL_PORT2
- TARGET_PORT = 3000 # TARGET_PORT
- BAUD_RATE = 115200 # BAUD_RATE