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

单片机发送数据问题

33fd6c91c3b5ab47 2018-09-25 浏览量:1748
单片机如何将ds18b20测得的温度通过串口发送到电脑上边,获取到的温度是十进制,但是串口只能发送16进制,请问怎么转换才能发送正确的温度值?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 串口是只能按字节发送,但数值在系统中本身就是二进制数据,对整数来说,二进制数据最后表示为十进制、十六进制或者二进制没有区别的。

    即其实你可以直接发送这个数据,只要接收方知道如何解析这个数据即可(比如直接识别为二进制)

    当然你也可以按字符发送,即把数据转换成多个字符的组合,每个字符都是8bit的数据。

    • 发布于 2018-09-25
    • 举报
    • 评论 1
    • 8
    • 0
lcr12 回复了 xdsnet:讲解很到位 回复

其他答案 数量:29
  • 直接发送就可以了,发送出来得数据在经过十六进制转成十进制就是你要的数据了。还可以发送字符,通过发送的字符来判断。
    • 发布于2018-10-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先要知道的是,单片机只认识0和1,你可能觉得我说的这个知识点很弱智,但其实很重要。

    当你把0d 3作为一个int类型的数据放到RAM中时,单片机的RAM中呈现的是 0b 0000 0000 0000 0011( 也就是0x 00 03 )。

    下次你再用单片机调用这串数字的时候,你得告诉它,这串数字要以什么类型的格式取出,因为大多数情况下我们以int类型存放,就以int类型取出,即存放的类型和取出的类型是一样的。

    但你可以试一下,以int类型存放(0b 0000 0000 0000 0011),以float类型取出,并打印,是什么结果(02.38221e-044),应该可以帮助你理解数据传输的原理。

    • 发布于2018-10-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 将DS18B20的数据保存到变量里面。一样可以直接使用  还简单
    • 发布于2018-10-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 要把你的数据转码一下,不然可能会显示不正常
    • 发布于2018-10-15
    • 举报
    • 评论 0
    • 0
    • 0

  • DS18B20生成的也是一个十六进制数据,把这个数据直接输出就可以
    • 发布于2018-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 问一句18b20出来的不就是数字信号么,不是可以直接用的吗
    • 发布于2018-10-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口没有只能发送16进制的说法,只要发送和接收的格式一致就可以。
    • 发布于2018-10-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 要将你的数据线转换成16进制,然后再进行传输显示
    • 发布于2018-10-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单片机发送数据问题