本例程使用树莓派双通道隔离型RS485扩展板(需要自行购买)为例,详细的使用方法参考2-CH_RS485_HAT_WIKI。
赫斯曼接口连接方式 | |
1 | 接V+(12V~36V) |
2 | 接A(Change 2) |
3 | 接V-(GND) |
4() | 接B(Change 2) |
功能引脚 | 树莓派接口(BCM) | 描述 |
VCC | 5V | 3.3V/5V电源正 |
GND | GND | 电源地 |
SCLK | P21(SPI1 SCLK) | SPI时钟输入 |
MOSI | P20(SPI1 MOSI) | SPI数据输入 |
MISO | P19(SPI1 MISO) | SPI数据输出 |
CS | P18(SPI1 CS) | SPI片选信号 |
IRQ | P24 | 中断输出 |
EN1 | P27 | 通道1(Channel 1)收发使能: 高电平发送使能,低电平接收使能 |
EN2 | P22 | 通道2(Channel 2)收发使能: 高电平发送使能,低电平接收使能 |
- sudo nano /boot/config.txt
- #加入如下,int_pin根据实际焊接方式设置:
- dtoverlay=sc16is752-spi1,int_pin=24
- #重启设备
- sudo reboot
重启后,SC16IS752的驱动会加载到系统内核中,此时可以运行ls /dev查看一下 将会多出如下设备:
在2020-05-27的树莓派系统中gpiochip3没有了变成了gpiochip2
- sudo apt-get install wiringpi
- #对于树莓派4B可能需要进行升级;
- cd /tmp
- wget https://project-downloads.drogon.net/wiringpi-latest.deb
- sudo dpkg -i wiringpi-latest.deb
- gpio -v
- # 运行 gpio -v 会出现2.52版本,如果没有出现说明安装出错
- sudo apt-get update
- sudo apt-get install python-pip
- sudo pip install RPi.GPIO
- sudo apt-get install python-serial
- sudo apt-get install python-crcmod
- sudo apt-get update
- sudo apt-get install python3-pip
- sudo pip3 install RPi.GPIO
- sudo apt-get install python3-serial
- sudo apt-get install python3-crcmod
- sudo apt-get install p7zip-full
- sudo wget https://www.waveshare.net/w/upload/1/14/WSTP11A_Code.7z
- sudo 7z x WSTP11A_Code.7z
- sudo chmod 777 -R WSTP11A_Code
- cd WSTP11A_Code/
- cd c
- make clean
- make
- sudo ./main
- #python2
- cd python
- cd examples
- sudo python main.py
- #python3
- cd python
- cd examples
- sudo python3 main.py
- #当只有一个设备连接上RS485总线,获取当前设备地址
- uint8_t WSTP11A_get_addr(void)
- #将指点地址的设备修改到新地址
- uint8_t WSTP11A_set_addr(uint8_t o_addr, uint8_t n_addr)
- #获取指定地址的设备的数据信息
- float WSTP11A_get_temp(uint8_t addr)
- #通过字符队列获取16位CRC校验
- def crc16Add(self,read):
- #当只有一个设备连接上RS485总线,获取当前设备地址
- def get_addr(self):
- #获取指定地址的设备的数据信息
- def get_temp(self,addr):
- #将指点地址的设备修改到新地址
- def set_addr(self,o_addr,s_addr):