itoa+java数组_转换从int到字节数组然后回到使用上的Arduino的atoi和itoa用于传输

本文介绍了在Arduino环境中,如何使用itoa将整数转换为字节数组,以及使用atoi将字节数组转换回整数。作者通过示例代码展示了itoa在转换过程中可能超出预设数组大小的问题,并展示了数组的输出结果,最终成功实现了数据传输并保持了数值的一致性。
摘要由CSDN通过智能技术生成

下面的代码是调试我的实现,您可以复制到Arduino IDE中查看打印输出。

我不能理解的是,itoa如何创建一个大于声明大小的数组,该大小不能被sizeof()检测到。我声明的数组大小为,但itoa使用大小为的数组来存储其结果!

Serial.println("|----START DEBUG------|");

int Sensor1Data=-32760;

Serial.print("Sensor1Data: ");Serial.println(Sensor1Data);

byte Sensor1CharMsg[2];

Serial.println("|----STAGE 2------|");

Serial.print("Array Size b4 itoa: ");Serial.println(sizeof(Sensor1CharMsg));

itoa(Sensor1Data,(char*)Sensor1CharMsg,10);

Serial.print("Array Values up to 10 elements: ");Serial.write(Sensor1CharMsg,10); Serial.println("");

Serial.print("Array Size a4tr itoa: ");Serial.println(sizeof(Sensor1CharMsg));

Serial.println("||||||| ARRAY OUTPUT|||||||");

Serial.print("Sensor1CharMsg[0]): "); Serial.println(Sensor1CharMsg[0]);

Serial.print("Sensor1CharMsg[1]): "); Serial.println(Sensor1CharMsg[1]);

Serial.print("Sensor1CharMsg[2]): "); Serial.println(Sensor1CharMsg[2]);

Serial.print("Sensor1CharMsg[3]): "); Serial.println(Sensor1CharMsg[3]);

Serial.print("Sensor1CharMsg[4]): "); Serial.println(Sensor1CharMsg[4]);

Serial.print("Sensor1CharMsg[5]): "); Serial.println(Sensor1CharMsg[5]);

Serial.println("|||||||END ARRAY OUTPUT|||||||");

传输后:

int Sensor2Data = atoi((char*)Sensor1CharMsg);

Serial.print("Sensor2Data: ");Serial.println(Sensor2Data);

结果

|----START DEBUG------|

Sensor1Data: -32760

|----STAGE 2------|

Array Size b4 itoa: 2

-32760

Array Size a4tr itoa: 2

||||||| ARRAY OUTPUT|||||||

Sensor1CharMsg[0]): 45

Sensor1CharMsg[1]): 51

Sensor1CharMsg[2]): 50

Sensor1CharMsg[3]): 55

Sensor1CharMsg[4]): 54

Sensor1CharMsg[5]): 48

|||||||END ARRAY OUTPUT|||||||

传输

Sensor2Data: -32760

2013-04-02

frazras

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值