LCD浮点数显示函数的探讨
来源:互联网 发布:extjs4 获取grid数据 编辑:程序博客网 时间:2024/06/05 04:51
单片机开放附赠的学习资料里面很少见到显示浮点数的函数,显示浮点数的操作也相当烦坠!
一般转换显示法
拿STM32单片机资源,我们选取ADC采样部分函数来看显示过程
adcx=Get_Adc_Average(ADC_Channel_5,20); LCD_ShowxNum(134,130,adcx,4,16,0); temp=(float)adcx*(3.3/4096); adcx=temp; LCD_ShowxNum(134,150,adcx,1,16,0); temp-=adcx; temp*=1000; LCD_ShowxNum(150,150,temp,3,16,0X80); LED0=!LED0; delay_ms(250);
分别取出整数部分和小数部分,分别显示出来
调整改进
void OLED_ShowFloatNum(u8 x,u8 y,double num,u8 len,u8 size){ u32 interger=(u32)num; u32 fractional=(u32)((num-interger)*1000); u32 x_tmp; if(num<0) { OLED_ShowString(x,y,"Minus!",16); } else { if(interger>=100) { x_tmp=x; OLED_ShowNum(x,y,interger,3,size); } else if(interger>=10&&interger<=99) { x_tmp=x-8; OLED_ShowNum(x,y,interger,2,size); } else if(interger>=1&&interger<=9) { x_tmp=x-16; OLED_ShowNum(x,y,interger,1,size); } else { x_tmp=x-16; OLED_ShowNum(x,y,0,1,size); } OLED_ShowChar(x_tmp+24,y,'.',size,1); if(fractional>=100) OLED_ShowNum(x_tmp+32,y,fractional,3,size); else if(fractional>=10&&fractional<=99) { OLED_ShowNum(x_tmp+40,y,fractional,2,size); OLED_ShowChar(x_tmp+32,y,'0',size,1); } else if(fractional>=1&&fractional<=9) { OLED_ShowNum(x_tmp+48,y,fractional,1,size); OLED_ShowChar(x_tmp+40,y,'0',size,1); OLED_ShowChar(x_tmp+32,y,'0',size,1); } else { OLED_ShowChar(x_tmp+32,y,'0',size,1); OLED_ShowChar(x_tmp+40,y,'0',size,1); OLED_ShowChar(x_tmp+48,y,'0',size,1); } }}
另一种直接调用c语言函数sprintf
定义buffer,这里注意添加头文件#include“stdio.h”
adcx=Get_Adc_Average(ADC_Channel_0,10); temp=(float)adcx*(3.3/4096); sprintf(buffer,"%5.2f",temp);//浮点型数据转为指定格式的字符串 LCD_ShowString(152,150,200,16,16,buffer); //直接送字符显示函数
阅读全文
0 0
- LCD浮点数显示函数的探讨
- 关于浮点数的存储方式探讨
- 显示整数、浮点数的二进制字节排列函数
- 浮点数的格式化显示
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨 [转载 bossin]
- IEEE 754 浮点数的表示精度探讨(转)
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- IEEE 754 浮点数的表示精度探讨
- C++设置浮点数显示的精度
- WiFi 智能配置方案的简单介绍
- tomcat 学习
- StackOverflowError和OutOfMemoryError产生原因汇总
- 错过刘自鸿的天使轮,让徐小平愧对天使投资人的骄傲
- 三道题+作业题
- LCD浮点数显示函数的探讨
- 设置Android模拟器上网的方法
- JSP获取绝对路径
- 图片压缩工具类
- Java 基础排序算法(冒泡,比较,插入,选择,希尔,堆,归并)
- dataframe数据之间求补集
- 17
- Android | 布局
- Python lambda表达式