• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

大家好,想请教一个问题,就是刚买了一个激光测距传感器,是串口

黄色的金毛单身狗 2017-03-20 浏览量:1183

大家好,想请教一个问题,就是刚买了一个激光测距传感器,是串口传递数据的,给了一些指令,请问怎么传递指令控制传感器工作并传回值呢?下图是指令


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你可以做一个数据,将你的命令内容做成固定的,这样,你调用起来是很方便的。

    如:

    char cmd[][20]={

    "$00022123&",

    "$0003260130&",

    "$00022426&",

    "$0003260029&",

    ......

    };


    你的命令数组的偏移可以使用宏定义。如:

    #define startonce    0

    #define open        1

    ......


    那么你使用串口写的时候可以写成cmd[startonce   ],简洁方便。



    至于回传的值,这个手册上一定有通讯格式,回传数据的含意了。

    • 发布于 2017-03-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 先打开串口,按传感器设置波特率。

    然后就给模块发字符串指令,开启连续测量,然后就不断地把模块发来的字符串赋值到一个char buf[]缓冲数组,再解析数据。

    缓冲数组的大小按需要设,设小了字符收不全,设大了浪费内存空间

    • 发布于2017-03-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 先找个串口调试助手,然后用串口线把模块接到电脑上,用助手发送这些指令。如果有反应说明指令发送成功了。

    看这个指令说明,应该用字符形式发送,而不是十六进制。

    • 发布于2017-03-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个表格的意思是,通过串口将这么一串字符传送给模块之后模块就会进行相应的动作

    因此这里需要先开灯,然后接收到确认的指令之后,启动单次测量,然后读取串口得到的数据,应该是16进制的内容,然后怎么转换成我们看得懂的内容需要进一步看资料

    • 发布于2017-03-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 廠商沒有附送範例資料給您嗎XD,這樣您還會買?

    簡單的方式就是先用各種Serial console測試各種指令

    其實跟AT指令大同小異

    將要用的指令建立好

    char cmd[]={"....."}; //....,依照您需要的指令
    導入TxBuffer內進行傳送
    然後依照各指令,讀取回傳回來到RxBuffer內的資料進行處理或者邏輯判斷

    因為不知道您是用哪顆MCU,這是概念做法,依照MCU會稍有不同

    以上供參考



    • 发布于2017-03-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

大家好,想请教一个问题,就是刚买了一个激光测距传感器,是串口