野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16683|回复: 4

如何在LCD上显示小数

[复制链接]
发表于 2014-12-1 11:02:29 | 显示全部楼层 |阅读模式
我们在ADC实验中将ADC采集的数据用以下语句着送往串口,在上位机屏幕上打印就出现了小数形式
printf("\r\n The current AD value = %f V \r\n",ADC_ConvertedValueLocal);
但火哥也提出如何让其显示在开发板的LCD上,这也是我很想得到的,例程里已经有显示整型数据的函数了
即使没有,自己编一个也不难
C语言库函数计算浮点数很方便,但在单片机编程时,我从来不敢用,不会用
我在除法时一直都是放大10倍或100倍的整数计算形式,但对于求三角函数就行不通了,
所以必须学会浮点数的显示,谁有该程序可以参考一下?真是雪中送炭了!
回复

使用道具 举报

发表于 2014-12-1 11:07:26 | 显示全部楼层
使用sprintf函数把变量转化成字符串,在用程序里的字符串显示函数就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-1 11:30:02 | 显示全部楼层
flyleaf 发表于 2014-12-1 11:07
使用sprintf函数把变量转化成字符串,在用程序里的字符串显示函数就好了

真的这么简单!那我就得仔细审视一下这个函数了
回复 支持 反对

使用道具 举报

发表于 2014-12-1 12:51:05 | 显示全部楼层
11kxmx 发表于 2014-12-1 11:30
真的这么简单!那我就得仔细审视一下这个函数了

就是那么简单
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-1 15:31:56 | 显示全部楼层
本帖最后由 11kxmx 于 2014-12-1 21:43 编辑


我在程序里添加了如下语句,想直接软件仿真看看结果,可编译根本通不过,错在哪里?
float a;
uint8_t s[10];
a=2/3;
sprintf(s,\"%5.3f\",a);
把两个斜杠去掉居然成功了,可又找不到查看变量的工具了,KEIL4还是和KEIL2不一样
又能查看了,选中变量名称,数值自己就出来了
但结果不对,小数点后面总是0X30,换成其它数也一样如:
a=3.14159;//可以正确显示
a=10347/1000;//显示10.0000,换成a=(double)10347/1000结果正确
b=65534;//显示正确
   sprintf(s,"%6.4f",a);
   sprintf(m,"%06d",b);
换成sin(a)结果为很大的负数
a=(double)sin(3),结果为-1098988318
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 21:31 , Processed in 0.042745 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表