硬汉嵌入式论坛

 找回密码
 立即注册
查看: 423|回复: 2
收起左侧

RT_thread系统中驱动OLED显示浮点型数据的函数

[复制链接]

7

主题

4

回帖

25

积分

新手上路

积分
25
发表于 2024-1-6 10:57:48 | 显示全部楼层 |阅读模式
/****************************************************************
* void OLED_ShowFNum()  显示任意浮点数,参考中景园OLED_ShowNum()函数
* x , y :  起点坐标
* Fnum  :  要显示的浮点数
***************************************************************/
void OLED_ShowFNum(rt_uint8_t x,rt_uint8_t y,float Fnum)
{
    char Data[1]= " ";                             //创建目标数组,用来存放转换后的字符数据
    sprintf(Data,"%.1f",Fnum);                //保留小数点后1位小数,打印到Data数组中

    OLED_ShowStr(x,y,Data); //调用OLED字符串显示函数,在OLED屏上显示
}

OLED_ShowStr函数
/* **********************************
* x,y--起始点坐标  ;ch【】--为要显示的字符   ;TextSize--字符大小(1:6*8 ;2:8*16)
* ***********************************/
void OLED_ShowStr(rt_uint8_t x,rt_uint8_t y,char ch[],unsigned char TextSize)
{
    rt_uint8_t c=0;
    rt_uint8_t i=0;
    rt_uint8_t j= 0;

    switch(TextSize)
    {

     case 1:
     {
        while(ch[j] != '\0')
        {
            c = ch[j] - 32;
            if(x > 126)
            {
                x = 0;
                y++;
            }
            OLED_SetPos(x,y);
            for(i=0;i<6;i++)
                WriteDat(iic_1,F6x8[c][i]);
            x += 6;
            j++;
        }
     }break;

     case 2:
     {
         while(ch[j] != '\0')
         {
             c = ch[j] - 32;
             if(x > 126)
             {
                x = 0;
                y++;
             }
             OLED_SetPos(x,y);
             for(i=0;i<8;i++)
                WriteDat(iic_1,F8X16[c*16+i]);
             OLED_SetPos(x,y+1);
             for(i=8;i<16;i++)
                WriteDat(iic_1,F8X16[c*16+i]);
             x +=8;
             j++;
        }
    }break;
    }
}

回复

使用道具 举报

7

主题

4

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2024-1-6 11:00:02 | 显示全部楼层
利用sprintf()函数的不需要再做多余的数据格式转换了,直接将浮点数据,打印到char类型的数组,这里一定要逐一,是char类型的数据
回复

使用道具 举报

7

主题

4

回帖

25

积分

新手上路

积分
25
 楼主| 发表于 2024-1-6 11:01:13 | 显示全部楼层
sprintf()函数的强大已足够,不需要再做多余的数据格式转换了,将浮点数直接转换后,存放在char类型的数组中,注意,一定是char类型的数组中
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 19:24 , Processed in 0.248729 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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