#include <ModbusMaster.h>//modbusmaster库,03读取功能
uint16_t m_startAddress = 2;//要读取的从站起始地址
uint8_t m_length = 2;//从从站起始地址开始你需要读取的数据的长度
uint8_t result;//串口通信结果,不用明白是什么,只要知道这不是你最终需要的数据就行
ModbusMaster node(1);//对1号从站进行通信
int LED = 8;
void setup() {
node.begin(9600);//定义arduino与从站之间的串口波特率
pinMode(LED,OUTPUT);
//Serial.begin(9600); //端口的波特率设置
Serial.begin(9600, SERIAL_8N2); //数据位8,无校验位,停止位2
}
void loop() {
result = node.readHoldingRegisters(m_startAddress, m_length);//调用相关函数
if (result == node.ku8MBSuccess) {//如果通信成功
digitalWrite(LED,HIGH);
delay(500);
digitalWrite(LED,LOW);
delay(500);
}
else {
digitalWrite(LED,HIGH);
}
}
//看别人的,加我自己编的,反正无法实现读取 |