modbus-rtu qt4-serialport2------micro2440 as host

和上文差不多,类换了一下。添加如下4个文件。
qextserialbase.cpp
qextserialbase.h
posix_qextserialport.cpp
posix_qextserialport.h

linux下使用poll方式操作串口。即定义一个定时器去轮询串口,看看里面有没有数据。(如果有,看有多少,字节数达到要求后,读取)。

micro2440有3个现成的串口,
[root@FriendlyARM plg]# ls /dev/ttySAC*
/dev/ttySAC0  /dev/ttySAC1  /dev/ttySAC2
其中/dev/ttySAC0和终端控制台绑定了。程序的一些调试信息如qDebug()都默认从这个串口发出,所以最好用ttySAC1或ttySAC2。
在调试的时候使用ttySAC0连到pc以观察输出的调试信息。ttySAC1或ttySAC2连到mcu(此时别忘记2 3脚需要交叉的)。如图



qtcreator 2.1.0   qt-lib-4.7.4
最简的一个skeleton,需要完善modbus的各个function及界面。
http://download.csdn.net/detail/songqqnew/3852608
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
实现串口通讯modbus-rtu可以使用Java串口通讯库rxtx,然后再结合modbus4j库来实现modbus-rtu协议的通信。 下面是一个简单的示例代码: 1. pom.xml中添加依赖 ```xml <dependency> <groupId>com.intelligt.modbus</groupId> <artifactId>modbus4j</artifactId> <version>3.1.4</version> </dependency> <dependency> <groupId>org.rxtx</groupId> <artifactId>rxtx</artifactId> <version>2.2.0</version> </dependency> ``` 2. 配置串口参数 ```java SerialPort serialPort = (SerialPort) portId.open("modbus", 2000); serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); ``` 3. 创建ModbusMaster ```java ModbusFactory modbusFactory = new ModbusFactory(); ModbusMaster master = modbusFactory.createRtuMaster(serialPort); master.setTimeout(500); master.setRetries(0); ``` 4. 读取寄存器 ```java int slaveId = 1; int startOffset = 0; int numberOfRegisters = 10; ReadInputRegistersRequest request = new ReadInputRegistersRequest(slaveId, startOffset, numberOfRegisters); ReadInputRegistersResponse response = (ReadInputRegistersResponse) master.send(request); if (response.isException()) { // 处理异常 } else { // 处理响应结果 } ``` 5. 写入寄存器 ```java int slaveId = 1; int offset = 0; int value = 1234; WriteRegisterRequest request = new WriteRegisterRequest(slaveId, offset, value); WriteRegisterResponse response = (WriteRegisterResponse) master.send(request); if (response.isException()) { // 处理异常 } else { // 处理响应结果 } ``` 以上就是一个简单的串口通讯modbus-rtu的实现示例,具体实现还需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值