【新人求助帖】有关传感器串口通讯的问题,请教大家

在开头先向大家说一声中秋节快乐呐~ 辛苦了很久终于能休息一下
我的问题是这样的,比赛要求是做一个车,他在周围有挡板的密闭环境里通过我放置的激光传感器定位,到达特定的位置,实现特定的功能。
现在编写程序能通过串口发送激活激光传感器的通信协议,但是我搞不懂怎么接受传感器发回来的距离数据,这个距离数据感觉有点奇奇怪怪的
是这样的:97 80 06 3F 30 32 2E 34 35 37(十六进制的数组) 真实的含义是02.457米
我测了多组参数 自己分析了一下 感觉应该是3F后的两组数是距离的个位与十位 而2E后面的是小数点后的数字 每个数字需要把数组中的3去掉。

我想请教一下各位这个数据处理函数应该怎么写?还有这个函数应该怎么用,我应该怎么读出他来,在Main函数判定?
请教大家一下,第一次用32还在学,希望大家带带路,谢谢啦。

0

4个回答

你说的对,因为 '0' 的ascii 是 0x30,'1'的ascii 是0x31 ...
所以存在ascii -> number 为 - 30h 的规律,也就是你说的 -3
小数点的ascii 是0x2e
这是ascii表,http://ascii.911cha.com

1
qq_38826498
_淡水海边_ 谢谢谢谢! 问题那时候已经解决
大约一年之前 回复

看看数据手册 应该有协议的具体讲解

数据处理的话先用串口接收中断接收数据到一个 (buf)数组中
接收完全部数据就计算(可以设置一个标志位判断是否接收完毕)
计算可以在主函数中 也可以直接就在中断函数中计算(数据量不太大的话)
具体就像楼上说的 这个数据处理并不难 关键就是根据其通讯协议进行数据处理

1
qq_38826498
_淡水海边_ 谢谢啦 问题已经解决很长时间了 但看到你们的耐心回复真的很感动
大约一年之前 回复

97 80 06 3F 30 32 2E 34 35 37 翻译成ASCII是 梹?02.457 文字编码部分 是大五码,可以不需要去管,扔掉返回数组的前4,然后用2E(小数点)分割,前面的是整数部分,后面的是小数部分。
2部分数据直接-30,即可获得该二进制数据,然后分别从小数点位置向2边进行D0+D1*10+D2*100,获得整数,同样D-1*0.1+D-2*0.01......获得小数部分。

1

我的印象中3F是一个标志位,就是你接受到的第四个数据&0x1(或者别的为真,则表示接收到了一组测距数据),去掉3的话,直接减去0x30就可以了。测距的好像是IIC方式,这个器件有一个IIC方式的存储片的,先要对首地址发送0x1,然后再检测。
while(cnt<100)
{
_delay_ms(2);
val = read(add) //这个add为标志位地址
if(val&0x1) break;
cnt++;
}
//后面就可以用数据了
(我用的是vl53l0x测距的,格式是这样的,不知道你的是不是)

1
qq_38826498
_淡水海边_ 那时候是简单的串口数据处理 问题已经解决 谢谢啦
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
职场新人请教问题一定不能犯的两个错误
俗话说金三银四,正是跳槽和找工作的季节,此时恰逢三月,很多朋友不是在找工作就是在找工作的路上。像是架构师米洛这样勤勤恳恳工作的,还有么?好吧,话不多说,咱们谈谈职场新人,在请教问题上一定不要犯的错误。rnrn职场新人进入新的环境,不了解公司情况是肯定的,所以许多公司才会让领导带着入职。新人自己也要勤奋学习,尽快适应环境。本来新人请教问题很常见,但有些新人心态不是特别正确,这里整理一下,希望有所帮助
求助帖
ideviceinstaller -l 命令失效n提示Could not connect to lockdownd. Exiting.nERROR: No mode/operation was supplied.nUsage: ideviceinstaller OPTIONSnManage apps on iOS devices.nn
Applese 的QQ群(二分+dfs)
链接:https://ac.nowcoder.com/acm/contest/330/Fn来源:牛客网n nn时间限制:C/C++ 2秒,其他语言4秒n空间限制:C/C++ 262144K,其他语言524288Kn64bit IO Format: %lldnn题目描述nnnnApplese 有一个QQ群。在这个群中,大家互相请教问题。如 b 向 a 请教过问题,就把 a 叫做是 b 的&quot;老板&quot;。这...
聊聊同步异步、阻塞非阻塞
1. 通用概念例子:”我”烧水(注意:这里的主语是”我”,也就是我们讨论的who)1.1. 同步异步1.1.1. 例子关注点:是否需要”我主动”去看水烧开没(注意,”我”和”主动”这两个词)n同步:“我”要主动看水烧开没n异步:不需要”我”主动去看水烧开,水壶响了通知”我”n1.1.2. 概念抽象概念:事情执行者对事情结果的获取机制(who:事情执行者)n同步:事情执行者主动获取事情结果
程序员应该如何去请教别人问题
程序员应该如何提问
教师回应幼儿求助行为的问题及对策研究
摘要n幼儿的求助行为是幼儿园比较常见的现象,怎样进行处理,直接影响到幼儿社会性发展。这是由于在求助过程中,幼儿可以和被求助者,多为教师进行互动,可以使幼儿学会许多解决问题的技巧,最终也就可以促进幼儿社会性的发展。本文选择3岁至6岁幼儿为研究对象,采用观察法,进行探究幼儿在幼儿园里的求助行为进行了研究。通过对幼儿求助行为的内容、对象、背景、方式和教师回应幼儿求助行为这几个部分进行表述,全面进行展示幼...
讨论学术问题的英文邮件模板
学术问题的英文邮件模板,根据此可以向老外要文章等资源
对网友求助问题的几个回帖展示之三十三
本文3例都是在网上回答网友的求助帖,其内容为关于PLC编程及电路图动作原理分析的。其求助帖一的编程有一定难度,望大家分析探讨。现整理汇编展示给大家,供大家参考。
新人请教串口通讯问题
想要做一个简单的串口程序通过 232转485链接到 一个断路器真空度检测仪上。rnrn按下真空度检测仪复位键的时候会自动上传16进制数据,向真空度仪传输的也是16进制仪器,请教怎么编程?我知道用控件,现在就是不知道是不是要把缓冲区的数据变成2进制,或者16进制,或者askii?新手不是很懂,求请教rnrn我自己编了个很简单的,但是接收不到数据rnrnrnOption ExplicitrnrnPrivate Sub Command1_Click()rnrnMSComm1.PortOpen = TruernCommand1.Enabled = FalsernCommand2.Enabled = TruernrnEnd SubrnrnPrivate Sub Command2_Click()rnMSComm1.PortOpen = FalsernCommand1.Enabled = TruernCommand2.Enabled = FalsernrnEnd SubrnrnPrivate Sub Command3_Click()rnMSComm1.OutBufferCount = 0rnMSComm1.Output = Text1.TextrnEnd SubrnrnrnPrivate Sub Command4_Click()rnText1.Text = ""rnText2.Text = ""rnEnd SubrnrnrnPrivate Sub Command5_Click()rnrnEnd SubrnrnPrivate Sub MSComm1_OnComm()rnrnEnd SubrnrnPrivate Sub Timer1_Timer()rnIf MSComm1.PortOpen = True Thenrn Text2.Text = MSComm1.Inputrn End IfrnEnd Subrnrnrn求教各位大神了 谢谢
问题请教工程,问题请教工程
问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,
程序员带新人的几点思考
CleverCode前几天看到一个新闻说:“这个人即懂技术,又懂管理!”。“懂管理”,这几个词一直在我脑海中回绕,CleverCode从开始工作后,就一直在专研技术。看的书籍清一色技术书籍。那时候总是认为,只要技术修炼到家了,走上管理岗位是自然的。随者时间的推移,一直在思考一个问题,“给你一个技术团队,你真的能带好吗?”。之后也刻意去看了一些管理的书籍,发现管理人和事,其实要比写代码难的多。
传感器(c#2.0)serialPort串口通讯.doc
传感器(c#2.0)serialPort串口通讯.doc传感器(c#2.0)serialPort串口通讯.doc
新人求助帖
public class Exercises6_2 rn private static int count; rn private String name; rn public class Student rn private int count; rn private String name; rn public void Output(int count) rn count++; rn this.count++; rn Exercises6_2.count++; rn Exercises6_2.this.count++; rn System.out.println(count + " " + this.count + " "+ Exercises6_2.count + " " + Exercises6_2.this.count++); rn public Student aStu() rn return new Student(); rnpublic static void main(String args[]) rn Exercises6_2 g3 = new Exercises6_2(); rn g3.count = 10; Exercises6_2.Student s1 = g3.aStu(); s1.Output(5); rn求解运行结果
新入职朋友说话时,一定不要用“你们”,用“咱们”
  昨天开工作会议,一位新同事讲话中,不断的用“你们”。吾赶紧提醒:不要用“你们”。于是改成了“我们”。nn  这个现象很常见,大家都习惯了。给人感觉是很糟糕的。所以吾提醒,特别是刚入职的朋友:nn  讲话中一定不要用“你们”,可以用“我们”,尽量用“咱们”。nn nn  其实,只要是别人谈话,即使是跟客户、合作方,也不要用“你们”来称呼,用“咱们”是最好的。...
如何请教别人
我多多少少在 iOS 圈子里面有一点点知名度,所以在微博、微信、公众号上找我问问题的人不少。但是,大部分的程序员都不懂得如何请教别人,其实这件事情只需要学会「换位思考」就会好很多,但是还是有人做不好。n这篇文章主要是写给我自己用的,以后再遇到不会提问题的人,我就贴给他这篇文章就可以了。n如何请教别人呢,要做到以下几点。n合适的自我介绍n上次有一个人在一个线下分享会后一直拉着我问问题,我一直
工程师如何向技术支持请求帮助?
从事嵌入式技术支持工作10年了,工作中经常会收到客户请求支持的情况。如果能够到问题现场进行处理,那还比较好说,但常常由于条件的限制,大部分支持都通过电话和邮件进行。客户常常会在邮件中强调问题非常关键,小则影响交期,大则影响订单,希望尽快解决。但是,通过他们的邮件,却很难做到很快解决。nnnn1. 列举场景nnn场景1nn客户邮件说,产品的xxx功能出问题了,不能工作,现在问题很急,请尽快帮忙解决。...
问题请教高手
问题请教高手问题请教高手
查阅文献时向原作者发邮件要文献的简单模板
Dear Professor XXX, n I am in XXX Institute of XXX, XXX university. I am writing to request your assistance. I search one of your papers:…………………(论文题目) but I can not read full-text content. Would you
对网友求助问题的几个回帖展示之四十一
本文四例都是网上的求助帖,涉及PLC及电工理论与计算等问题,现整理展示给大家,供大家分析讨论。如有不妥之处,请给予指正,本人深表感谢!
BJTU 求位数
题面描述 nn小 A 现在高一,却什么都学不会。老师给小 A 留了许多作业,让他计算一些数字经过幂运算后的位数。这对于小 A 来说实在太难了,于是来请教聪明的你。你能帮帮小 A 吗?nn这道题目可以简化为如下内容:试求 ak 的值在十进制下有多少位。nn输入数据 nn第一行有一个整数 t (1 ≤ t ≤ 100) ,表示有 t 组数据。nn对于每组数据:nn第一行有两个正整数 a,k (1 ≤ ...
mpu6050串口输出角度,单片机stc15串口显示角度
新买回来的mpu6050,是芯片集成的串口输出加速度,角度,加速度模块,看附送资料都是用AVR做成的,我们学51增强型单片机,所以用stc15芯片做成这个程序。这个模块的TX接单片机的RX,接上高低电平就可以在串口上显示3个角度了。
对工控论坛网友求助问题的几个回帖展示之三十一
  本文4例都是在工控网论坛上回答网友的求助帖,是涉及PLC编程及硬件电路的问题,现整理汇编展示给大家,供大家参考。如有不对之处,请给于指正,本人深表感谢!
对网友求助问题的几个回帖展示之四十
本文四例都是网上的求助帖,涉及PLC及电工理论与计算等问题,现整理展示给大家,供大家分析讨论。如有不妥之处请给于指正,本人深表感谢。
求助,一个有关串口通讯的问题!
我用的控件是spcomm。当我发送一帧据之后,等待对方发送校验,当我收到正确校验码,就发送下一帧!我想请问在senddata中怎么写验证方法?rnrn......rnprocedure senddata;rn varrn i,temp1: integer;rn temp2: integer;rn viewint: integer;rn beginrn viewstring := '';rn framecount:=1;rnrn //得到帧长度rn textlength := form1.Memo1.Lines.Count-1;rn framelength := (textlength+MaxBufLength) div MaxBufLength;rn restlength := textlength mod MaxBufLength;rnrn //发送帧rn for i:= 1 to framelength dorn beginrnrn //发送帧头rn if (framecount = 1) thenrn beginrn for temp1 := 1 to 32 dorn beginrn ydstr:=$AA;rn form1.comm1.WriteCommData(@ydstr,1);rn end;rn end;rnrn //发送@rn FrameStart := $40;rn form1.Comm1.WriteCommData(@FrameStart,1);rnrn //发送地址rn target := $6200;rn source := $6100;rn form1.Comm1.WriteCommData(@target,2);rn form1.Comm1.WriteCommData(@source,2);rnrn //发送帧计数rn form1.Comm1.WriteCommData(@framecount,1);rnrn //发送控制命令rn Write := $57;rn Receive := $52;rn form1.Comm1.WriteCommData(@Write,1);rn form1.Comm1.WriteCommData(@Receive,1);rn UWrite := not Write;rn UReceive := not Receive;rn form1.Comm1.WriteCommData(@UWrite,1);rn form1.Comm1.WriteCommData(@UReceive,1);rnrn //发送帧长rn if framecount < framelength thenrn beginrn Write := 128;rn form1.Comm1.WriteCommData(@Write,1);rn endrn elsern beginrn form1.Comm1.WriteCommData(@restlength,1);rn end;rnrn //发送数据帧rn //后续帧标志位rn //充填位rn if (framelength = framecount) thenrn beginrn for temp2 := (framecount-1)*MaxBufLength to ((framecount-1)*MaxBufLength)+restlength dorn beginrn viewstring := form1.Memo1.Lines.Strings[temp2];rn viewint := strtoint(viewstring);rn form1.Comm1.WriteCommData(@viewint,1);rn end;rnrn flg := $23;rn form1.Comm1.WriteCommData(@flg,1);rn if((restlength mod 2) = 0) thenrn beginrn tcstate := $00;rn form1.Comm1.WriteCommData(@tcstate,1);rn end;rn endrn elsern beginrn for temp2 := ((framecount-1)*MaxBufLength) to ((MaxBufLength-1)+((framecount-1)*MaxBufLength)) dorn beginrn viewstring := form1.Memo1.Lines.Strings[temp2];rn viewint := strtoint(viewstring);rn form1.Comm1.WriteCommData(@viewint,1);rn end;rn flg := $2A;rn form1.Comm1.WriteCommData(@flg,1);rn end;rnrn //奇校验rn Odd := form1.OddEven(1);rnrn //偶校验rn Even := form1.OddEven(0);rnrn //结束符rn endstate1 := $13;rn form1.Comm1.WriteCommData(@endstate1,1);rn endstate2 := $10;rn form1.Comm1.WriteCommData(@endstate2,1);rnrn //帧计数;rn framecount:=framecount+1;rn //等待rn sleep(200);rn end;rn end;rnrnprocedure TForm1.BitBtn1_click(Sender: TObject);rn beginrn senddata;rn end;rnrnprocedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;rn BufferLength: Word);rn varrn i,j:integer;rn rsbuf: array[1..48] of byte;rn ACdata: array[1..48] of byte;rn AFdata: array[1..48] of byte;rn beginrn move(buffer^,pchar(@rsbuf)^,bufferlength);rn for i:=1 to bufferlength dorn beginrn viewstring:=viewstring+inttohex(rsbuf[i],2)+'';rn form1.Memo1.Clear;rn form1.Memo1.lines.add(viewstring);rn end;rn end;rnrnend.
对工控网友求助问题的几个回帖展示之二十九
  本文4例都是在网上回答网友的求助帖,现整理汇编展示给大家,供大家参考。如有不对之处,请给于指正,本人深表感谢!
DHT11串口显示程序
基于51单片机的DHT11串口显示程序,同时带有时间显示功能,方便记载数据采集的时间,形成数据库,本程序使用c语言编程,程序中都附有详细的注释,且已通过测试,请大家放心下载。
【董天一】关于IPFS的热门问题
 nnn作者简介:董天一 ,IPFS/Filecoin中国区技术布道人 ,《IPFS指南》作者n毕业于北京大学软件与微电子学院n曾担任甲骨文亚洲研发中心(中国)数据库开发工程师n资深区块链技术开发者,现致力于IPFS/Filecoin在中国的技术推广nn nnnn nn nn nn nn最近小编在公众号收到了一些提及比较高的问题,今天总结一下统一回答nn nn        目前网络上有一些对ip...
对网友求助问题的几个回帖展示之五十
本文5例都是网上的求助帖,涉及PLC编程及电工理论与计算等问题,现整理展示给大家,供大家分析讨论。如有不妥之处,请给予指正,本人深表感谢! 一、求助帖:集电极开路输出能不能降压? …… 其中有一个是光电传感器,就是监测物体的有无,放大器型号是Keyence的LV-N11N,输出是npn集电极开路,但是这样的话,貌似高电平时候,输 出电压就会在30V左右,而我们现在的NI(National Instruments)的数据采集板卡只能采集 -10~10V的信号。所以我就想能不能将这个传感器的高电平信号降到10V以内,同时避免信号干扰之类的现象呢?
对网友求助问题的几个回帖展示之四十五
本文5例都是网上有关电路知识与电路计算的求助帖,现整理汇总展示给大家,供大家分析参考,如有不妥之处请给予指出,本人深表感谢! 一、求助帖:如何用仪器检测转轮卡死 我现在有个螺旋槽,由电机通过皮带转动,现在的情况是,螺旋槽因为物料堵而卡死,但是电机依然转动,如何做好监控?让主控的人知道螺旋槽不转了。
与传感器相关的英语文献
与传感器相关的外文资料,可以作为外文文献翻译的资料。
请教有关MFC下串口通讯问题
Remon Spekreijse的串口类定义了WM_COMM_RXCHAR,可以通过声明类似于“ON_MESSAGE(WM_COMM_RXCHAR, OnCommunication)”,在程序用定义消息相应函数。rn 请问PJ Naughter的串口类有没有类似"WM_COMM_RXCHAR"的定义?rn
Keyence激光达标流程与串口通讯说明
Keyence激光达标流程与串口通讯说明
两轮平衡小车
主要利用陀螺仪以及请教传感器来实现小车的站立
关于传感器应用的很好的一篇论文
关于传感器应用的很好的一篇论文很全面的,值得下载
新人首帖求助!!!json
刚进公司,需要写一个java接口接收lua脚本传递来的json串,不知道如何接收取得其中相应的值。rn"car":"plate_no":"京GLP207", rn"owner":"name":"张三",rn "engine_no":"0121414",rn "vin":"12124124541",rn "register_date":"2013-07-03", rn"issue_date":"2013-07-03", rn"vehicle_type":"轿车",rn "model":"大众",rn "use_character":"客车", rn"insured person":"name":"张三",rn "id_no":"111111111111111111",rn "insurer":"太平洋",rn "insurance":"qiang":"1", rn"qiangDateStart":"2016-07-19", rn"qiangDateEnd":"2017-07-18",rn "chesun":"buji":"1", rn"daoqiang":"buji":"1",rn "ziran":"buji":"1", rn"boli":"baoe":"国产玻璃(特殊材质)",rn "siji":"baoe":"40000", "buji":"1",rn "sanzhe":"baoe":"300000", "buji":"1",rn "chengke":"unit":"40000", "buji":"1", rn"huahen":"baoe":"10000", "buji":"1", rn"shangDateStart":"1899-12-30",rn "shangDateEnd":"1899-12-30"rnrn////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////rnString str ="'ent_name':'hhhhhhhhhhhhhhhhh','ent_naming':'dd','ent_naming_unit':'fff','ent_escription':'赛事简介'";rn Gson gs = new Gson();rn Map map = gs.fromJson(str, Map.class);rn System.out.println(map.get("ent_name"));rn网上查的用的gson但是我这个json串格式不一致。
对网友求助问题的几个回帖展示之三十五
本文2例都是在网上回答网友的求助帖,其内容为关于PLC编程的,现整理汇编展示给大家,供大家参考。 一、求助帖:在书上看的的一个程序,I1.0-I1.3的初始状态是1100,I0.0接通后QW0用 16进制分别是0.3.30.300.3000.0..........对不?
新人求助帖,第一搞
今天搭建了android 环境,然后想运行子简单的程序,就是页面显示一个hello world ,结果运行的时候报了错误,完全没有头绪,第一用eclipse ,第一次搞android ,错误如下:rn[img=https://img-bbs.csdn.net/upload/201410/10/1412922564_763684.png][/img]rn请问这个问题是什么意思?以后我再遇到问题,怎么解决呢,总不能遇到个问题,在论坛上发帖子问呢,有没有适合初学者的好方法
工控网友求助问题的汇总展示三十二
本文2例都是在工控网论坛上回答网友的求助帖,其内容都是涉及PLC编程的,特别是求助帖一,其编程有一定难度,需仔细琢磨。现整理汇编展示给大家,供大家参考。如有不对之处,请给于指正,本人深表感谢!
串口通讯的相关文献来自知网
串口通讯 串口通讯的相关文献来自知网串口通讯的相关文献来自知网串口通讯的相关文献来自知网串口通讯的相关文献来自知网
RS232串口通讯传输资料
RS232串口通讯传输的资料,有关串口通讯的东东
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java新人学习 java新人学习感想