找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2750|回复: 6
打印 上一主题 下一主题
收起左侧

单片机ADC采样电压超过10V,LCD上面不显示小数点

[复制链接]
跳转到指定楼层
楼主
本帖最后由 yytda 于 2020-8-2 21:51 编辑

代码见下图,这是一个电压采样,并且在LCD上面显示的代码,正常情况下应该显示11.500V电压,实际上显示有问题,红点那个位置如果填1,LCD就会显示1.500V,红点那个位置填2,LCD就会显示11500V,请问是哪里出了问题?怎样才能让小数点前面显示两位数呢?单片机是STM32F103。低于10V的电压显示就没有问题,大于10V才有问题


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:804115 发表于 2020-8-2 23:13 | 只看该作者
看看图片没你有没有启发?
首先你将1改成2肯定没问题,因为你要显示的整数部分变成11了,所以必然要显示两个数字。
但是你的起始坐标没有变,那么后面的1就会将小数点覆盖,所以就显示成11500了,所以,你有两种方法可以改:
1. 将整数部分往左移一位,即16(size=16,所以一个字符在x轴就是占16个像素点),那就是将156改为140,这样就可以显示11.500了;
2. 将小数点儿和小数部分整体向右移动,这个你自己做实验吧,算作业了。

4.png (324.45 KB, 下载次数: 67)

4.png
回复

使用道具 举报

板凳
ID:525582 发表于 2020-8-3 00:30 | 只看该作者
1692483014 发表于 2020-8-2 23:13
看看图片没你有没有启发?
首先你将1改成2肯定没问题,因为你要显示的整数部分变成11了,所以必然要显示两 ...

高手啊,一眼就看出问题在哪了,adcx那一行156改小之后;,是显示11.500V了,但是小数部分怎么移动呢?把temp那一行里面的172改大,显示电压还是没有小数点
回复

使用道具 举报

地板
ID:804115 发表于 2020-8-3 11:44 | 只看该作者
yytda 发表于 2020-8-3 00:30
高手啊,一眼就看出问题在哪了,adcx那一行156改小之后;,是显示11.500V了,但是小数部分怎么移动呢?把 ...

从你的截图中我无法看出那个小数点是怎么画上去的,你要找到画点的那一行代码,然后同步调整才行。
回复

使用道具 举报

5#
ID:525582 发表于 2020-8-3 12:50 来自手机 | 只看该作者
1692483014 发表于 2020-8-3 11:44
从你的截图中我无法看出那个小数点是怎么画上去的,你要找到画点的那一行代码,然后同步调整才行。

画点的那一行代码,一般是在哪里可以找到?会不会根本就没有这一行代码,而是小数前面自动加的点?
回复

使用道具 举报

6#
ID:420836 发表于 2020-8-4 08:20 | 只看该作者
感谢您回答问题。 我们都从中学到了东西。
回复

使用道具 举报

7#
ID:1040393 发表于 2023-11-3 17:08 | 只看该作者
1692483014 发表于 2020-8-2 23:13
看看图片没你有没有启发?
首先你将1改成2肯定没问题,因为你要显示的整数部分变成11了,所以必然要显示两 ...

我也正在写类似的程序,遇到相同的问题,看到楼主这样的解答,瞬间清晰了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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