历史上的今天
今天是:2025年03月13日(星期四)
2019年03月13日 | LCD浮点数显示函数的探讨
2019-03-13 来源:eefocus
单片机开放附赠的学习资料里面很少见到显示浮点数的函数,显示浮点数的操作也相当烦坠!
一般转换显示法
拿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); //直接送字符显示函数
上一篇:关于STM32精准采频率的实现
史海拾趣
|
请问JY134G9是哪家的液晶屏,这是我下载的资料中出现的一个型号,网上查不到是哪家的 请问JY134G9是哪家的液晶屏,这是我下载的资料中出现的一个型号,网上查不到是哪家的,所以问问大家。 … 查看全部问答> |
|
## 前 言 本文主要介绍基于全志科技A40i(ARM Cortex-A7)处理器的8/16通道AD采集开发案例,使用核芯互联CL1606/CL1616AD芯片,亦适用于ADI AD7606/AD7616。CL1606/CL1616与AD7606/AD7616软硬件兼容。 > 备注: > > (1)创龙科技TL7606I ...… 查看全部问答> |
|
浙江南都电源动力股份有限公司(股票代码:300068)面向智慧储能、数据中心、工业后备和绿色出行四大应用领域,提供以锂离子电池和铅电池为核心的产品、系统集成及服务,同时打造了“锂电池循环产业链”和“铅电池循环产业链” ...… 查看全部问答> |
|
浙江南都电源动力股份有限公司(股票代码:300068)面向智慧储能、数据中心、工业后备和绿色出行四大应用领域,提供以锂离子电池和铅电池为核心的产品、系统集成及服务,同时打造了“锂电池循环产业链”和“铅电池循环产业链” ...… 查看全部问答> |
|
爱好者Kian Ryan组装了一台很可能是最小的CP/M微型计算机--建立在Pimoroni Tiny 2040和Adafruit microSD读卡器之上。 “我一直在使用RC 2014作为CP/M开发机器,特别是在开发跨平台的Rogue类游戏时。我喜欢它,” ...… 查看全部问答> |
|
本帖最后由 chenbingjy 于 2022-11-18 08:34 编辑 我想使用GPIO16控制LED灯的亮灭,不知可行否? 我用第一个图的函数操作,编译通不过,说是没定义。 高手指教,谢谢! … 查看全部问答> |
|
现象: 手里的一块板子,D1焊接漏了,没有焊接,测试的时候,迅速插拔电源,偶尔出现单片机无法启动的问题,经简单查看分析,3.3V放电慢了,未放电完全立马上电了,导致的无法启动,但是把D1补上 ...… 查看全部问答> |
|
功能是,u1-vout(输出过高)过流后 q2d 立马就关掉了 lock被拉高 当reset将lock拉低后,又可以恢复保护 芯片大致手册如下: 主要是支持单电源比较方便 ...… 查看全部问答> |




