关于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<recipt.length();i++){//把String类型的数据转换成int类型的数据
  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是不一样的.
















转载于:https://my.oschina.net/leohouse/blog/647669

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值