极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37378|回复: 12

跪求大神!!arduino串口接收传感器数据的问题

[复制链接]
发表于 2016-12-28 01:17:39 | 显示全部楼层 |阅读模式
小弟新刚刚上手arduino没多久,现在打算用arduino UNO r3接收一个倾角传感器的数据,收到的数据很奇怪
下面是传感器的通信协议(应答命令里面数据域是3byte,图片上面标错了)
数据格式: 16进制
标示符:固定为77
数据长度:从数据长度到校验和(包括校验和)的长度
地址码:采集模块的地址,默认为00
数据域:根据命令字不同内容和长度相应变化。
校验和:数据长度、地址码、命令字和数据域的和不考虑进位
命令结束符:0D 0A


下面是代码,现在的情况是串口收到的数据完全是混乱的,连标示符都收不到,求大神帮忙
  1. #include <SoftwareSerial.h>
  2. SoftwareSerial Serial1(10,11);
  3. void setup() {
  4.   Serial.begin(9600);
  5.   Serial1.begin(9600);
  6.   Serial1.write(0x77);
  7.   Serial1.write(0x04);
  8.   Serial1.write((byte)0x00);
  9.   Serial1.write(0x01);
  10.   Serial1.write(0x05);
  11.   Serial1.write(0x0D);
  12.   Serial1.write(0x0A);//给传感器发送指令,让其工作,发送数据。
  13.   delay(1000);
  14. }

  15. byte jieshou[9];
  16. byte flag=0;
  17. byte inByte;

  18. void loop() {
  19.   if (Serial1.available() > 0&&flag==0)
  20.   {
  21.     delay(10);
  22.     if(inByte==0x77)//检验标识符
  23.     {
  24.       for(int i=0;i<9;i++)
  25.       {
  26.         if(Serial1.available()>0) jieshou[i]=Serial1.read();
  27.         delay(10);
  28.       }
  29.       if(jieshou[7]==0x0D&&jieshou[8]==0x0A)flag=1;//检验命令结束符
  30.      }            
  31.   }
  32.   if(flag==1)
  33.   {
  34.     int a=jieshou[3];//符号部分,0为正,1为负
  35.     int b=jieshou[4];//整数部分
  36.     int c=jieshou[5];//小数部分
  37.     float jiaodu=b+c/100;
  38.     if(a==0){Serial.print(jaodu);}
  39.     else{Serial.print(jaodu);}
  40.     for(int i=0;i<9;i++)
  41.     {
  42.       jieshou[i]=0x00;
  43.     }
  44.     flag=0;
  45.    }
  46. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-12-28 08:22:01 | 显示全部楼层
巧了这个倾角传感器我用过。但是程序已经忘记怎么写了,需要找找原文件。
这个传感器好像是北微牌的,哈哈……看通讯协议很熟。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 12:29:24 | 显示全部楼层
本帖最后由 yeastyanis 于 2016-12-28 12:31 编辑
PINKWALKMAN 发表于 2016-12-28 08:22
巧了这个倾角传感器我用过。但是程序已经忘记怎么写了,需要找找原文件。
这个传感器好像是北微牌的,哈哈 ...


对的,就是北微的倾角传感器,求大神帮忙看一下
回复 支持 反对

使用道具 举报

发表于 2016-12-29 08:04:13 | 显示全部楼层
给我个邮箱找个时间把程序发给你。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-29 17:08:50 | 显示全部楼层
PINKWALKMAN 发表于 2016-12-29 08:04
给我个邮箱找个时间把程序发给你。

没办法私信,直接在这里回复了
我的邮箱是[email protected]
非常感谢~
回复 支持 反对

使用道具 举报

发表于 2016-12-30 08:08:40 | 显示全部楼层
已发送,由于传感器发送的数据字节是固定,我这采用的是循环位移接收的方式,你看看。
回复 支持 反对

使用道具 举报

发表于 2017-3-21 11:03:17 | 显示全部楼层
PINKWALKMAN 发表于 2016-12-29 08:04
给我个邮箱找个时间把程序发给你。

大神!!也给我一份这个的代码吧![email protected]   感激不尽!!!
回复 支持 反对

使用道具 举报

发表于 2017-7-3 09:28:40 | 显示全部楼层
PINKWALKMAN 发表于 2016-12-29 08:04
给我个邮箱找个时间把程序发给你。

大神,跪求一份 [email protected]
回复 支持 反对

使用道具 举报

发表于 2017-7-3 11:33:53 | 显示全部楼层
cyqq 发表于 2017-7-3 09:28
大神,跪求一份

已经发到你的QQ邮箱。
回复 支持 反对

使用道具 举报

发表于 2017-7-3 11:34:14 | 显示全部楼层
hhhwwwyyy 发表于 2017-3-21 11:03
大神!!也给我一份这个的代码吧!   感激不尽!!!

已经发到你的QQ邮箱。
回复 支持 反对

使用道具 举报

发表于 2018-1-10 19:47:48 | 显示全部楼层
PINKWALKMAN 发表于 2017-7-3 11:34
已经发到你的QQ邮箱。


求兄弟发一份资料给我,万分感谢,邮箱:[email protected]
回复 支持 反对

使用道具 举报

发表于 2018-4-23 11:58:18 | 显示全部楼层
PINKWALKMAN 发表于 2016-12-29 08:04
给我个邮箱找个时间把程序发给你。

我也碰到问题了,请帮忙也发一份[email protected],谢谢!
回复 支持 反对

使用道具 举报

发表于 2019-7-22 14:08:54 | 显示全部楼层
PINKWALKMAN 发表于 2016-12-28 08:22
巧了这个倾角传感器我用过。但是程序已经忘记怎么写了,需要找找原文件。
这个传感器好像是北微牌的,哈哈 ...

大神!!能给我也发一份吗?[email protected]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 06:09 , Processed in 0.048216 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表