该款激光测距模块集成了芯片,能够十分方便的直接传回数据,最近备赛,分享一下该模块的使用,以及需要注意的问题。此次是在MSP430F5529上进行开发的,其他MCU可自行移植。

1.硬件接线


上图是我从TOF10120技术手册上截取下来的,可以知道,该模块支持IIC和UART两种通讯模式,可根据MCU资源选择合适的方式,此次直接利用串口进行开发。

绿线 ——SCL 蓝线 ——SDA
白线 ——TXD 黄线—— RXD
红线 ——VCC 黑线 ——GND
对应于串口的话,
(tof)SCL-SDA(430);
(tof)SDA-SCL(430)即可

2.配置

可以直接利用USB转TTL模块先进行配置,配置好之后直接使用即可。其中对于IIC和UART方式有各种配置的指令,我这里贴出部分配置指令,具体各位可以自行去看文档进行配置,过程十分简单。文档资源可以找淘宝店家要或者直接上半岛小芯搜寻即可,实在没找到,我这里也有,告诉我邮箱,我发一份给你。

3.串口接受和数据处理

串口的具体配置这里就不赘述了,之前有写过关于串口的一些配置方法。
串口配置
这里主要贴出来对于TOF10120发送数据的接受处理,即串口的中断服务函数。

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=USCI_A0_VECTOR
__interrupt
#elif defined(__GNUC__)
__attribute__((interrupt(USCI_A0_VECTOR)))
#endif
void USCI_A0_ISR (void)
{static int count = 0;switch (__even_in_range(UCA0IV,4)){//Vector 2 - RXIFGcase 2:Rx_buf = USCI_A_UART_receiveData(USCI_A0_BASE);if(Rx_buf != 10 || count==10)//字符串的结尾,表示一帧数据未传输完毕{Data[count++] = Rx_buf;}else if(Data[count-2] == 'm' && Data[count-3] == 'm')//一组数据接收完毕{digital = count-3;count = 0;flag = 1;}//            USCI_A_UART_transmitData(USCI_A0_BASE,Rx_buf);default: break;}
}

数据的处理如下:

if(flag == 1){num = 0;x = digital;for(y=0;y < x;y++,digital--){num += (Data[y]-48)*pow(10,digital-1);}flag = 0;}

以上数据处理的代码还可以继续优化和封装,这里就留给各位自由发挥了。

模块学习(三)——激光测距模块(TOF10120)相关推荐

  1. Python模块学习 - 用tinify模块压缩和优化图片

    Python模块学习 - 用tinify模块压缩和优化图片 tinify模块 功能描述:TinyPNG和TinyJPG网站提供了压缩和优化.png和.jpg格式图片的功能.虽然可以很轻松地使用网页版进 ...

  2. 【Python模块学习】pandas模块简介

    pandas模块学习 一.背景概述 Pandas (Python Data Analysis Library) 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. numpy更加适用 ...

  3. Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  4. python模块学习之glob模块

    glob模块 功能描述:glob模块可以使用Unix shell风格的通配符匹配符合特定格式的文件和文件夹,跟windows的文件搜索功能差不多.glob模块并非调用一个子shell实现搜索功能,而是 ...

  5. Qt 学习(三) —— Qt 模块

    1. Qt 模块简介 Qt由许多模块组成,分别支持不同领域的功能,主要分为 Essentials 和 Add-On. Qt Essential 是基本模块,它们可以在所有受支持的开发平台和经过测试的目 ...

  6. [Python模块学习]用tinify模块压缩和优化图片

    tinify模块 by: uizuizui 功能描述:TinyPNG和TinyJPG网站提供了压缩和优化.png和.jpg格式图片的功能.虽然可以很轻松地使用网页版进行操作,但是在搭建个人博客的时候, ...

  7. [Python模块学习]用colorsys模块转换颜色模型,常见颜色模型简介(RGB/HSV/HSL/YIQ)

    colorsys模块 博主最近又进入了无聊模式,没事就翻Python标准库读源码读着玩.但是里面有几个模块确实规模比较大,所以坑挖了一半就停了-现在电脑桌面上一堆没填完的坑.总之慢慢填吧- 今天发现了 ...

  8. Python模块学习之IPy模块

    1.IPy介绍 IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能.可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段.网络掩码.广播地 ...

  9. JavaScript之后端Web服务器开发Node.JS基本模块学习篇

    JavaScript之后端Web服务器开发Node.JS基本模块学习篇 基本模块 fs文件系统模块 stream支持流模块 http crypto加密模块 基本模块 因为Node.js是运行在服务区端 ...

  10. <转载>光模块学习总结

    作者写的非常详细全面,转载到这儿大家一起学习学习. 如有侵权请联删. 作者: 曹世宏 链接: https://cshihong.github.io/2020/08/16/光模块学习总结/ 光模块简介 ...

最新文章

  1. 查询出某个表依赖于某个表的外键,进行遍历删除操作
  2. JAVA中复制数组的方法
  3. 编码原则:不变量/前置条件/后置条件
  4. arthas-boot.jar 工具的简单使用
  5. SQL server经典电子书、工具和视频教程汇总
  6. ASP.NET MVC3 中的AJAX
  7. mysql 优化的一些小窍门
  8. 关于button onclick a href 分析
  9. python--综合小案例--文件读取以及梳理
  10. 执行mount命令时找不到介质或者mount:no medium found的解决办法
  11. 邱锡鹏DL经典教材-《神经网络与深度学习》
  12. 国内三大知名开源B2B2C多用户商城系统对比
  13. 架构师日常-技术or业务
  14. 把单元格一分为二_怎么将一个单元格一分为二
  15. 直播软件系统搭建技术分享
  16. 计算机工作组环境和域环境的区别
  17. js 获取浏览器宽度和高度
  18. 使用ESP8266接入阿里云物联网平台(阿里 云智能APP)可远程控制电脑开关机,灯光等设备 CP2102, CH340
  19. 【转】性能测试中如何定位性能瓶颈
  20. HTML5中polygon坐标,SVG Polygon(多边形)

热门文章

  1. 我的全栈之路-C语言基础之C语言概述与开发环境搭建
  2. 【绘图杂记16】Echarts 热力矩阵图
  3. 在jsp引入bootstrap
  4. CentOS7配置本地yum源 和yum源服务器
  5. 黑客利用Apache Struts 2漏洞在服务器上传递Cerberus勒索软件
  6. 解读《创业家》2009年中国创新企业榜TOP100
  7. 2019 CCPC wannfly winter camp Day 8
  8. p设计一个Person类,属性有姓名、年龄、性别,创建方法personInfo,打印输出这个人的信息;创建Student类,继承Person类,属性有学院college,班级Group,重写父类Per
  9. 二叉树(树,森林,二叉树互转)
  10. 弘辽科技:京东推广为什么不能加关键词。