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

ds18b20的温度数据怎么转换成ASCII码?

我是假管 2018-11-06 浏览量:1816
从ds18b20读出来的温度数据要送到一个串口屏上显示,串口屏需要的是ASCII码,那么温度数据怎么转换成ASCII码?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 好几种方式:假设得到的数据是x(浮点数),假设小数点后两位

    1. 细节一点的:把x乘以100,后余1000、余100、余10,得到4个位的值,发送ASCII码时,将每个位的值+0x30就是对应的ASCII码。

    2. 正规一点的:使用printf函数,将x格式化输出(%f)直接得到对应串口的ASCII值。

    • 发布于 2018-11-06
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:17
  • 无需特殊转换,只需要将你的温度数据分解出来发送就行了,比如温度是16摄氏度,分解成1和6发送,发送之前需要转换成ASCII的数据,也就是在元数值上架0x30。比如1+0x306+0x30就行了
    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 1
    • 0

  • 你已经读取到的数据,假设是整数,则你可以直接通过printf格式化打印来输出到串口。一般情况下就是以ASCII码打印的。
    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 也就是数字转char形,可以自己转+48,还可以用string.h里面的函数
    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 把读到的数据转换成对应的浮点格式的温度值。要是有printf重映射了的话,可以直接格式化输出,一般float格式就够用了,使用%n.mf的格式格式化未字符串输出,或者可以使用sprintf格式化到单片机的内存,提前定义一个数组或者用指针申请内存空间。
    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 这也就是二进制转十进制的方法了,可以使用sprintf转成字符串

    也可以转成BCD码的方式

    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 0
    • 0

  • sprinf 格式化输出成字符串就行了,

    字符串中的每一个字符就是以 ASCII 码的形式存储的,比如 数字 1,内存中存的就是 0x31

    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用sprintf函数。

    也可以自己写个程序转换。

    • 发布于2018-11-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 用sprintf格式化,或者自己写转换+48转char
    • 发布于2018-11-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接把得到的值每一位拆开再各自+‘0’按顺序发送到屏幕。
    • 发布于2018-11-07
    • 举报
    • 评论 0
    • 0
    • 0

  • sprintf就可以的,也可以一位位转换
    • 发布于2018-11-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以用一个sprintf函数,这个函数包含在stdio.h里面
    • 发布于2018-11-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用sprintf函数,可以转成字符串的形式,也就是ascii
    • 发布于2018-12-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 建议用sprintf这个函数来进行转换输出
    • 发布于2018-12-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 有一个sprintf函数可以使用,直接就是转换输出了
    • 发布于2018-12-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

ds18b20的温度数据怎么转换成ASCII码?