标题: 单片机ADC采样电压超过10V,LCD上面不显示小数点 [打印本页]

作者: yytda    时间: 2020-8-2 21:19
标题: 单片机ADC采样电压超过10V,LCD上面不显示小数点
本帖最后由 yytda 于 2020-8-2 21:51 编辑

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



作者: 1692483014    时间: 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, 下载次数: 68)

4.png

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

高手啊,一眼就看出问题在哪了,adcx那一行156改小之后;,是显示11.500V了,但是小数部分怎么移动呢?把temp那一行里面的172改大,显示电压还是没有小数点
作者: 1692483014    时间: 2020-8-3 11:44
yytda 发表于 2020-8-3 00:30
高手啊,一眼就看出问题在哪了,adcx那一行156改小之后;,是显示11.500V了,但是小数部分怎么移动呢?把 ...

从你的截图中我无法看出那个小数点是怎么画上去的,你要找到画点的那一行代码,然后同步调整才行。
作者: yytda    时间: 2020-8-3 12:50
1692483014 发表于 2020-8-3 11:44
从你的截图中我无法看出那个小数点是怎么画上去的,你要找到画点的那一行代码,然后同步调整才行。

画点的那一行代码,一般是在哪里可以找到?会不会根本就没有这一行代码,而是小数前面自动加的点?
作者: TTQ001    时间: 2020-8-4 08:20
感谢您回答问题。 我们都从中学到了东西。
作者: 1472580033    时间: 2023-11-3 17:08
1692483014 发表于 2020-8-2 23:13
看看图片没你有没有启发?
首先你将1改成2肯定没问题,因为你要显示的整数部分变成11了,所以必然要显示两 ...

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1