STM32实现TFT LCD浮点数显示

这篇具有很好参考价值的文章主要介绍了STM32实现TFT LCD浮点数显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式一:通过sprintf将小数转换成字符串,通过字符串显示函数LCD_ShowString()显示

/*
 * @param   x,y        起点坐标
 * @param   num        需要显示的浮点数,数字范围(0.0~4294967295.0)
 * @param   float_n        需要显示的小数点后位数
 * @param   size    字体大小(支持16/24/32号字体)
  */
void LCD_ShowFloatNum_Sprintf(u16 x, u16 y,float num,u8 float_n,u8 size)
{
    uint32_t mi_temp=1;
    uint32_t zhengshu=0;
    uint32_t xiaoshu=0;
    uint8_t zhengshu_counter=0;
    uint8_t xiaoshu_counter=0;

    for (int var = 0; var < float_n; ++var)
    {
        mi_temp=10*mi_temp;
    }

    zhengshu=(uint32_t)num;//整数计算
    xiaoshu=(uint32_t)((num-zhengshu)*mi_temp);//小数部分转整数计算

    zhengshu_counter=Calc_IntNum(zhengshu);
    xiaoshu_counter=Calc_IntNum(xiaoshu);

    uint8_t str_len=zhengshu_counter+xiaoshu_counter+1;

    char Str_Data [str_len]; // destination string
    //uint16_t dec_part,float_part;
    //dec_part = (uint16_t) num * 10; //整数部分:3位小数*1000
    //float_part = (num*10)-dec_part; //小数部分
    sprintf (Str_Data, "%ld.%ld",zhengshu,xiaoshu); // Decimal precision: 3 digits

    LCD_ShowString( x,  y, str_len*size/2, size,  size, Str_Data);
                                         // u16 width, u16 height,
}

方式二:计算出浮点数整数部分、小数部分、整数部分的数字数和小数部分的数字数,通过数字显示函数LCD_ShowNum()和LCD_ShowChar(仅数点)显示,三部分拼接而成

/*
 * @param   x,y        起点坐标
 * @param   num        需要显示的浮点数,数字范围(0.0~4294967295.0)
 * @param   float_n        需要显示的小数点后位数
 * @param   size    字体大小(支持16/24/32号字体)
  */

void LCD_ShowFloatNum(u16 x, u16 y,float num,u8 float_n,u8 size)
{
    uint32_t mi_temp=1;
    uint32_t zhengshu=0;
    uint32_t xiaoshu=0;
    uint8_t zhengshu_counter=0;
    uint8_t xiaoshu_counter=0;

    for (int var = 0; var < float_n; ++var)
    {
        mi_temp=10*mi_temp;
    }

    zhengshu=(uint32_t)num;//整数计算
    xiaoshu=(uint32_t)((num-zhengshu)*mi_temp);//小数部分转整数计算

    zhengshu_counter=Calc_IntNum(zhengshu);
    xiaoshu_counter=Calc_IntNum(xiaoshu);

    LCD_ShowNum(x, y, zhengshu, zhengshu_counter, size);    //显示整数部分
    LCD_ShowChar((x+size*zhengshu_counter/2), y, '.', size);            //显示小数点
    LCD_ShowNum((x+size*zhengshu_counter/2+size/2), y, xiaoshu, float_n, size);    //显示整数部分

}

浮点数--“整数部分的数字数和小数部分的数字数”--计算函数,返回数字个数

uint8_t Calc_IntNum(uint64_t calc_num)
{
        uint8_t Counter=0;
        uint16_t num2=calc_num;

        float num_temp=(float)num2/10;

        for (int var = 0; var < 1000; ++var)
        {
                if (num_temp*10>=1)
                {
                    num_temp=num_temp/10;
                    Counter++;
                }
                else
                {
                    break;
                }
        }
        return Counter;
}

实现平台和效果显示文章来源地址https://www.toymoban.com/news/detail-599389.html

STM32实现TFT LCD浮点数显示,stm32,Powered by 金山文档

到了这里,关于STM32实现TFT LCD浮点数显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 驱动4.3寸TFT LCD 触摸屏

    STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏。触摸屏是在显示屏上覆盖一层触摸感应的外屏,有单独的接口输出坐标数据。 这里以STM32F103VET6开发板连接4.3寸TFT LCD触摸屏,将正点原子的参考代码,移植到STM32CUBEIDE开发环境,实

    2024年02月11日
    浏览(18)
  • STM32 FSMC接口驱动4.3寸TFT LCD屏

    STM32的FSMC接口是并行总线接口,可以用于驱动存储芯片如FLASH/SRAM等,也可以用于驱动并口LCD屏。 这里以STM32F103VET6开发板连接4.3寸TFT LCD屏,将正点原子的参考代码,移植到STM32CUBEIDE开发环境,实现TFT LCD屏的显示。 TFT LCD模块的管脚连接: 其中: LCD_CS是总线片选, WR/CLK是写使

    2024年02月10日
    浏览(23)
  • STM32驱动4寸ST7796S LCD-TFT屏

    屏幕驱动芯片ST7796S最大支持320*480分辨率的屏幕,显存GRAM达345600字节,支持8/9/16/18/24位并口数据总线,还支持3/4线制SPI通信。每一个像素点RGB显示的颜色可达65K/262K/16.7M钟,像素点地址设置按照行列的顺序进行,递增递减方向由扫描方式决定,显示方法按照先设置地址再设置

    2024年02月03日
    浏览(18)
  • STM32开发(二十三)STM32F103 高级外设 —— TFT_LCD屏框架以及填充颜色 详解

    👈《上一篇》  🏡《主目录》  👉《下一篇》

    2024年02月06日
    浏览(18)
  • STM32(HAL库)驱动(1.44寸)TFT-LCD彩屏

    目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置  2.1.2 RCC配置 2.2 屏幕引脚配置 2.3 项目生成  3、KEIL端程序整合 3.1 LCD驱动添加 3.2 函数修改 3.2.1 lcd.h修改 3.2.2 lcd_innit.h 修改  3.2.3 lcd.c修改  3.2.4 lcd_inut.c修改  3.3 主函数代码 3.3.1 添加头文件 3.3.2 LCD进行初始化

    2024年02月03日
    浏览(20)
  • STM32H5开发(6)----SPI驱动TFT-LCD屏

    在嵌入式领域,TFT-LCD屏是最常用的显示解决方案之一,因为它们提供了丰富的颜色和高分辨率的图像显示能力。STM32H5作为ST的高性能微控制器系列,具备了强大的处理能力和多种通信接口,非常适合于驱动TFT-LCD显示屏,该液晶屏st7796或者ILI9488驱动芯片,这两个屏幕都是兼容

    2024年02月05日
    浏览(20)
  • STM32CubeMX教程22 FSMC - 8080并行接口TFT-LCD驱动

    开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 XCOM V2.6串口助手 使用STM32CubeMX软件配置STM32F407开发板 FSMC接口驱动8080并行接口TFT-LCD显示 ,具体为使用FSMC Bank 1-NOR/PSRAM4,片选信号为NE4(PG12),TFT-L

    2024年01月23日
    浏览(20)
  • stm32 hal库硬件spi(软件spi)驱动1.8寸tft—lcd屏幕

    屏幕是嵌入式开发中的一个重要的部分,cdsn上有许多解释原理的,还有很多是采用正点原子的屏幕来驱动的,对于刚刚入门不久的我们可能没有资金去购买较为昂贵的屏幕。而对于底层原理我们暂时也不必了解的那么深入,能点亮屏幕就是我们最大的快乐。 除了中景园的资

    2024年02月03日
    浏览(21)
  • 【快速上手STM32】SPI通信协议&&1.8寸TFT-LCD(ST7735S)

    SPI,英文全称Serial Peripheral Interface,即串行外围设备接口,是一种高速、全双工、同步的串行通信总线。 我们之前说过I2C,那么我们就拿I2C和SPI做个对比。 SPI和I2C对比,优势在于SPI的传输速率比I2C快得多,劣势在于SPI需要用的通信线比较多。 I2C只需要两根线,而SPI至少需要

    2024年04月27日
    浏览(12)
  • 【STM32CubeIDE】STM32F103硬件SPI驱动1.8寸TFT LCD128X160 ST7735S屏幕

    ✨虽然STM32CubeIDE也是基于HAL库,但是还是不能直接转Keil MDK工程,本驱动案例从GitHub下载来的,原始工程使用的是较老版本的STM32CubeIDE配置的,没法在继续在新版本上程序配置,工程只是做了初始化配置。程序并不能直接被点亮,重新配置了lcd初始化函数以及复位函数后,才

    2024年02月12日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包