单片机发送数据问题

关注

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

最佳答案

  • xdsnet 发表于2018-09-25

    串口是只能按字节发送,但数值在系统中本身就是二进制数据,对整数来说,二进制数据最后表示为十进制、十六进制或者二进制没有区别的。

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

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

    回答点赞:   最帅的廖先生 川楠 Wyatt0007 一指破宫 Angel_YY 3683380b814250f 举报 评论1 6

    lcr12 回复了 xdsnet:讲解很到位 回复

其他答案

  • donatello 发表于 2018-09-25

    将DS18B20的数据保存到变量中就行了,变量是没有十进制、十六进制之分的,可以直接使用。

    回答点赞:   Wyatt0007 maya593 yhj416606438 3683380b814250f 举报 评论 4

  • WQS1314 发表于 2018-09-25

    DS18b20温度传感器,采用数据总线传输数据,把数据读取出来就可以了

    回答点赞:   maya593 yhj416606438 3683380b814250f 举报 评论 3

  • 张峰 发表于 2018-09-25 云汉达人

    串口发送数据无所谓什么类型,

    单片机发的是10进制,电脑接受后按照 10进制解析。

    单片机发 16进制,电脑按照 16进制解析,无所谓的。

    回答点赞:   maya593 yangjiaxu 举报 评论 2

  • yangjiaxu 发表于 2018-09-25

    按十进制转换即可了,上位机会自动识别的

    回答点赞:   maya593 yhj416606438 举报 评论 2

  • 赤心木zqw 发表于 2018-09-25

    可以将printf函数重映射到串口函数,然后就可以用printf输出到串口了,printf时,将温度计算好,使用f(浮点)或者d(十进制)输出即可。

    回答点赞:   maya593 3683380b814250f 举报 评论 2

  • Spirit 发表于 2018-09-25

    题主需要学习计算机原理

    回答点赞:   yhj416606438 3683380b814250f 举报 评论 2

  • 捷波 发表于 2018-09-25

    不同进制只是一个数值的不同表示形式,在串口通讯时收发双方都是以字节为单位传送数据,即都是以八位二进制方式按位传送数据。

    回答点赞:   maya593 yhj416606438 举报 评论 2

  • megar 发表于 2018-09-26

    二进制八进制还有十六进制是样的,要想显示温度值有两种方法,一种是直接通过单片机计算出温度值,通过串口传到电脑显示,还有一种就是电脑通国VB编写的控件显示出来,控件接收的就是单片机数据,可以是原数据,也可以是转换后的数据!

    回答点赞:   yhj416606438 举报 评论 1 1

    lcr12 回复了 megar:这样的方法很不错,有创新 回复

  • 明有几时有 发表于 2018-09-26

    你可以把收到的数据转成BCD码后,再发送到电脑上

    回答点赞:   yhj416606438 举报 评论 1

  • US 发表于 2018-09-26

    可以转换成char型,或者直接传数据,不受进制影响

    回答点赞:   yhj416606438 举报 评论 1

  • Chauncey 发表于 2018-09-26

    获取到数据后,将数据转换为字符型发送就可以了

    因为字符实际上发送的是ASCII码

    回答点赞:   maya593 举报 评论 1

  • huihui163 发表于 2018-09-27

    单片机这块不需要怎么转换温度,主要是上位机这块需要解析你的数据并转换为温度显示

    回答点赞:   maya593 举报 评论 1

  • yhj416606438 发表于 2018-09-26

    通过转换成字符型到上位机

    举报 评论 0

  • 一指破宫 发表于 2018-09-26

    将温度储存在 数组中,整数和小数部分分开,让后传送出给串口助手,你点击 串口助手中的16进制 ,看那种数据是你想要的 ,

    举报 评论 0

  • hardess 发表于 2018-09-26

    无所谓的你把数据保存转发就行

    举报 评论 0

  • 石亚东 发表于 2018-09-26 云汉达人

    温度数据转ASCII码,发送到串口端,文本显示

    举报 评论 0

  • FEItwo 发表于 2018-09-26

    首先你可以转换你的数据的进制,字符类型也可以改变来发送

    举报 评论 0

  • 涛涛涛涛涛 发表于 2018-09-28

    串口连汉字都可以发送的不多你要用printf或者sprintf转换一下

    举报 评论 0

  • 木兮青鱼 发表于 2018-09-29

    要把对应的数据转换成对应的十进制,然后对串口端口到上位机显示

    举报 评论 0

  • chen0000009 发表于 2018-10-05

    串口上面的数据没有10进制16进制这种说法,统一只有高低电平,因此,你这里的数据转换,实际上是在显示的时候用不同的格式显示而已,这个在上位机的串口显示软件上面直接改就行

    举报 评论 0

我来回答

试用推荐

Beetle-ESP32控制器

产品总数:5个  申请人数:7

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

  • 袁建明 向ta提问

    河北博联科技有限公司 研发部经理

    日知其所亡

    在行: Linux 系统 灵动微MCU 电源技术

完成答题
赶快去开启您的宝箱吧
×
恭喜您成功领取锦鲤卡
幸运锦鲤将在12月28日晚8点的直播中公布
敬请期待...
确定
邀请答题送话费,邀的多赚的多