我正在尝试与SDI-12设备进行串行通信,它需要以 1200 波特反转的七个数据位、偶校验和一个停止位(7E1) 串行。
从数据表:
SDI-12
通信以每秒 1200 位的速度发送字符。每个字符有 1 个起始位、7 个数据位(LSB 在前)、1 个偶校验位和 1 个停止位(低电平有效或反转逻辑电平):
All SDI-12
命令和响应在数据线上必须遵循以下格式。命令和响应都以地址开头,并以回车换行组合终止。
Serial 或 SoftwareSerial 库可以做到这一点吗?我试图避免使用额外的硬件(除了到 3.3 V 的电平转换器),但如果这是唯一的方法,我会这样做。
我已经看到 SoftwareSerial 可以做反转,而 Serial 可以做 7E1,但我找不到两者是否都可以。
我可以使用Arduino Mega (R2) 和Arduino Uno (R3)。
这是我要与之通信的设备:http: //www.decagon.com/products/sensors/soil-moisture-sensors/gs3-soil-moisture-temperature-and-ec/在这里,http://www .decagon.com/assets/Uploads/GS3-Integrators-Guide.pdf是解释协议的文件。第 6 页讨论了它对 SDI 的实施。