|
本帖最后由 我是新新新新手 于 2021-7-5 16:51 编辑
你好,我是用arduino的,跟楼主一样接收回来是4字节字符,需要转换成10进制浮点数,但找了好久没找到可转换代入的公式。楼主的代码也试过,编译不了,看了你写了个转换的软件,想讨教下你公式,我想转换成10进制后打印出来
本人在这里换算过是OK的 https://www.23bei.com/tool-23.html#
- //功率表发送01 03 00 2A 00 02 E5 C3回应01 03 04 40 20 31 27 BB B3,40203127为有效浮点数,右高字节
- unsigned char data2[8] = {0x01,0x03,0x00,0x2a,0x00,0x02,0xE5,0xC3}; //功率表指令
- String comdata2 = "";
- float gonglv;
- void setup() {
- Serial.begin(9600); //设置串口波特率9600
- Serial2.begin(9600); //设置串口波特率9600 功率表
- void loop() {
- gonglvbiao();
- void gonglvbiao() { //功率表
-
- delay(20);
- for (int j = 0; j < 8; j++)
- {
- Serial2.write(data2[j]);//向串口2发送信息
- }
- delay(20);
- while (Serial2.available() > 0)
- {
- comdata2 += char(Serial2.read()); //每次读一个char字符,并相加 字符串
- delay(2);
- }
-
- if (comdata2.length() > 0){
- float data5=comdata2[3];
- float data6=comdata2[4];
- float data7=comdata2[5];
- float data8=comdata2[6];
- delay(20);
- Serial.print(comdata2);
- delay(200);
- Serial.print(data7);
- delay(200);
- // comdata2 = "";//清空数据,等待下一次接收
- }
复制代码 |
|