2个quint16与32位浮点相互转换

float a = 1.234;

/*1 拆分*/
uint16_t *pa1 = (uint16_t *)(&a);		//获得a前16位地址
uint16_t *pa2 = pa1+1;		//获得a后16位地址
qDebug() << "a" << *pa1 << " " << *pa2;




float b = 0.0;
    quint16 *pb1 = (quint16 *)(&b);
    quint16 *pb2 = pb1+1;

/*2 组合*/
*pb1 = 44728;	//将a前16位地址的内容(2进制码)复制给pb1指向的内存空间。
*pb2 = 17336;	//将b前16位地址的内容(2进制码)复制给pb2指向的内存空间。

printf("组合结果:b = %f\n",b);		//组合结果:b = 1.234

													QModbusServer从站

modbusDevice = new QModbusTcpServer(this);
modbusDevice->setConnectionParameter(QModbusDevice::NetworkPortParameter, 502);
modbusDevice->setConnectionParameter(QModbusDevice::NetworkAddressParameter, "127.0.0.1");
modbusDevice->setServerAddress(1);
bool isc = modbusDevice->connectDevice();
qDebug() << "连接" << isc;

QModbusDataUnitMap reg;
reg.insert(QModbusDataUnit::Coils, { QModbusDataUnit::Coils, 0, 10 });
reg.insert(QModbusDataUnit::DiscreteInputs, { QModbusDataUnit::DiscreteInputs, 0, 10 });
reg.insert(QModbusDataUnit::InputRegisters, { QModbusDataUnit::InputRegisters, 0, 10 });
reg.insert(QModbusDataUnit::HoldingRegisters, { QModbusDataUnit::HoldingRegisters, 0, 10 });

modbusDevice->setMap(reg);
bool ok;
//    modbusDevice->setData(QModbusDataUnit::HoldingRegisters, 1, "DDaa".toUShort(&ok, 16));
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值