arduino int转char_关于arduino串口接收16进制转换成int类型的问题

先上代码:

String recipt="";

bool flag=false;

int data[7]={0};

void setup() {

Serial.begin(38400,SERIAL_8N1);

}

void loop() {

int i,j;

while (Serial.available()) {//从串口中读取数据

int in = (char)Serial.read();

recipt+=in;

recipt+=',';

delay(2);

flag=true;

}

if(recipt.length()>0){//先输出一下接收到的数据

Serial.print(recipt);

Serial.print(' ');

}

for(j=i=0;i

if(recipt[i]==','){

j++;

}else{

data[j]=data[j]*10;

data[j]=data[j]+(recipt[i])-48; //这一行是最重要的,把string类型的0~9转换成int型的0~9

}

}

if(flag){//输出转换成int型的数据。

for(i=0;i<7;i++){

Serial.print(data[i]);

Serial.print(' ');

}

}

flag=false;

recipt="";

}

也没什么说的。只是数据类型转换时小心点,string类型的‘0’和int类型的0是不一样的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值