LCD浮点数显示函数的探讨
LCD浮点数显示函数的探讨
原创 2017年12月19日 单片机开放附赠的学习资料里面很少见到显示浮点数的函数,显示浮点数的操作也相当烦坠! 一般转换显示法 拿STM32单片机资源,我们选取ADC采样部分函数来看显示过程 adcx=Get_Adc_Average(ADC_Channel_5,);
LCD_ShowxNum(,,adcx,,,);
temp=(float)adcx*(3.3/);
adcx=temp;
LCD_ShowxNum(,,adcx,,,);
temp-=adcx;
temp*=;
LCD_ShowxNum(,,temp,,,0X80);
LED0=!LED0;
delay_ms(); 分别取出整数部分和小数部分,分别显示出来 调整改进 void OLED_ShowFloatNum(u8 x,u8 y,double num,u8 len,u8 size)
{
u32 interger=(u32)num;
u32 fractional=(u32)((num-interger)*);
u32 x_tmp;
if(num<)
{
OLED_ShowString(x,y,"Minus!",);
}
else
{
if(interger>=)
{
x_tmp=x;
OLED_ShowNum(x,y,interger,,size);
}
else if(interger>=&&interger<=)
{
x_tmp=x-;
OLED_ShowNum(x,y,interger,,size);
}
else if(interger>=&&interger<=)
{
x_tmp=x-;
OLED_ShowNum(x,y,interger,,size);
}
else
{
x_tmp=x-;
OLED_ShowNum(x,y,,,size);
} OLED_ShowChar(x_tmp+,y,'.',size,); if(fractional>=)
OLED_ShowNum(x_tmp+,y,fractional,,size);
else if(fractional>=&&fractional<=)
{
OLED_ShowNum(x_tmp+,y,fractional,,size);
OLED_ShowChar(x_tmp+,y,'',size,);
}
else if(fractional>=&&fractional<=)
{
OLED_ShowNum(x_tmp+,y,fractional,,size);
OLED_ShowChar(x_tmp+,y,'',size,);
OLED_ShowChar(x_tmp+,y,'',size,);
}
else
{
OLED_ShowChar(x_tmp+,y,'',size,);
OLED_ShowChar(x_tmp+,y,'',size,);
OLED_ShowChar(x_tmp+,y,'',size,);
}
}
} 另一种直接调用c语言函数sprintf 定义buffer,这里注意添加头文件#include“stdio.h” adcx=Get_Adc_Average(ADC_Channel_0,);
temp=(float)adcx*(3.3/);
sprintf(buffer,"%5.2f",temp);//浮点型数据转为指定格式的字符串
LCD_ShowString(,,,,,buffer); //直接送字符显示函数
LCD浮点数显示函数的探讨的更多相关文章
- 【STM32H7教程】第51章 STM32H7的LTDC应用之LCD汉字显示和2D图形显示
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第51章 STM32H7的LTDC应用之LCD汉字 ...
- 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1060上LCD横向渐变色显示出亮点问题的分析解决经验. 痞子衡前段时间在支持一个i.MXRT1060客户项目时遇到了LCD ...
- 如何让vim自动显示函数声明-使用 echofunc.vim插件
echofunc.vim可以显示函数的declaration, 默认的是针对c/c++, 对于php, 只要 启用了 ctags都可以, 因为echofunc是从tags file中获取数据的... ...
- TControl的显示函数(5个非虚函数,4个虚函数)和三个例子的执行过程(包括SetParent的例子)
// 9个显示函数 procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; // 虚函数,important 根据父控 ...
- 关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结
关于dl dt dd 文字过长换行在移动端显示对齐的探讨总结 <dl> <dt>抵押房产:</dt> <dd>1.北京市大兴区兴华大街丽园小区3单大兴 ...
- EmWin 文本显示函数
函数模型----------------------------------- 1:void GUI_DispChar(U16 c): 在当前窗口的当前文本位置处,使用当前字体显示单个字符. c ...
- 如何在gvim中安装autoproto自动显示函数原型
cankao: http://www.vim.org/scripts/script.php?script_id=1553 注意, 在gvim中执行的命令, :foo和:!foo 的区别, 跟vim一样 ...
- Vim技能修炼教程(16) - 浮点数计算函数
浮点数计算函数 这一节的所有函数,只有在vim编译时支持了+float时才有效. 三角函数 sin() : sine正弦函数 cos() : cosine余弦函数 tan() : tangent正切函 ...
- ue-edit设置显示函数列表
UltraEdit的函数列表竟然不显示函数,那这功能要它何用,应该如何才能让函数显示出来呢? 公司编程基本上都在UltraEdit中进行,俺刚来公司还不熟悉,今天装了个UltraEdit,可是看着别人 ...
随机推荐
- leetcode 5 Longest Palindromic Substring(Manacher算法求最长回文串)
应用一下manacher算法就可以O(n)求出结果了.可以参考hdu3068 substr(start,length)函数是这样用的: substr 方法 返回一个从指定位置开始,并具有指定长度的子字 ...
- SQL的CASE表达式用法
case 表达式从SQL-92标准开始引入,因此是不依赖于具体的数据库技术,可提高SQL代码的可移植性. case表达式注意事项: 1. 统一各个分支返回数据类型,并保证各个when字句的排他性,因为 ...
- python TypeError: 'NoneType' object is not iterable
list(set(map(lambda tp_id : tp_id if not ('#' in tp_id) and len(tp_id.strip().replace('\n', '')) > ...
- stl_queue.h
stl_queue.h // Filename: stl_queue.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: http:/ ...
- JavaWEB - 静态include指令、动态Include指令
(一)使用静态include指令 <%@ page language="java" contentType="text/html; charset=gb2312&q ...
- unity破解步骤
1.选择unity的安装目录 C:\Programe Files (x86)\Unity\Editor 2.点击patch 3.使用random生成序列号 4.使用Cre Lic生成授权文件
- C语言小程序(五)、数组查询
随机产生一些字符,然后输入要查找的字符,本想将查找到的字符存储起来,要么初始化一个等大小的数组,要么要先检索出总共查找到多少个元素,再开辟空间存储,但这样相当于搜索了两遍,没有想到更好的方法,只是简单 ...
- CQOI2018做题记录
T1.破解D-H协议 传送门 这个题就是BSGS的板子题-- 然后这里补充一点嘛,就是第二重循环的枚举范围.我们是在枚举\(a^{tm-y}\),把tm换成i,这个的最大值就是\(i - (m - 1 ...
- 【VS】VS开发中遇到的问题的总结
1. VS中经常会出现无法解析的外部符号,还有LINK ERROR 2019等 这类问题如果检查代码没有错误,很大概率就是lib文件错误.调试程序找出问题函数,再找出问题函数使用到的lib文件,在项 ...
- 代码实现跟控制器跳转到storyBoard