qmodbus记录一下,担心 忘记了

发布时间 2023-04-26 21:04:05作者: 马肯尼煤牙巴骨

tcp是大端, modbus tcp当然也是大端
一般操作系统都是小端 ,
当操作系统 -》 modbus tcp -> plc时
不用关心plc那边是大端还是小端 , 只要面对modbus tcp转换就行了
16位 大小端翻转

#define BigtoLittle16(A)   (( ((uint16)(A) & 0xff00) >> 8)    | \  
                                       (( (uint16)(A) & 0x00ff) << 8))  

32位

#define BigtoLittle32(A)   ((( (uint32)(A) & 0xff000000) >> 24) | \  
                                       (( (uint32)(A) & 0x00ff0000) >> 8)   | \  
                                       (( (uint32)(A) & 0x0000ff00) << 8)   | \  
                                       (( (uint32)(A) & 0x000000ff) << 24))  

值得一说的是,如果这些应该是自己封闭库的时候才需要考虑,如果是调库的话
有的库已经内部封装了转换了
qmodbus模块应该就是已经在内部转换了, 所以按正常字节序发就可以,