找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 387|回复: 3
打印 上一主题 下一主题
收起左侧

求助ST7735 tft显示函数-乱码

[复制链接]
跳转到指定楼层
楼主
ID:891876 发表于 2026-1-21 16:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网上找的显示带负数显示函数,下载后显示乱码,请大佬帮忙看看!
void st7735_ShowSigneddNumM(uint16_t x,uint16_t y,int32_t num,uint8_t len,uint16_t fc,uint16_t bc,uint8_t size)//显示有符号数
{
                uint8_t t,temp;
          uint32_t num_abs;
        if(num<0)
                {
                   LCD_ShowChar(x,y,'-',fc,bc,size,0);
                         num_abs=-num;
                         x+=size/2*8;
                         len--;               
        }
                else{
                        num_abs=num;
                }
                for(t=0;t<len;t++)
                {
                        temp=(num_abs/mypow(10,len-t-1))%10;
                        LCD_ShowChar(x + t*size/2*8,y,temp+'0',fc,bc,size,0);
                        
                }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2026-1-21 21:21 | 只看该作者
显示乱码,有可能是显示问题,有可能是数据溢出没纠错。
当然也可能有其他问题,不多算命。
回复

使用道具 举报

板凳
ID:1025893 发表于 2026-1-22 12:31 | 只看该作者
void st7735_ShowSigneddNumM(uint16_t x, uint16_t y, int32_t num, uint8_t len, uint16_t fc, uint16_t bc, uint8_t size)//显示有符号数
{
    uint8_t t, temp;
    uint32_t num_abs;
    if(num < 0)
    {
        LCD_ShowChar(x, y, '-', fc, bc, size, 0);
        num_abs = -num;
        x += size / 2;
        len--;
    } else {
        num_abs = num;
    }
    for(t = 0;t < len;t++)
    {
        temp = (num_abs / mypow(10, len - t - 1)) % 10;
        LCD_ShowChar(x + t * size / 2, y, temp + '0', fc, bc, size, 0);

    }
}
不用乘以8
你可以试下
回复

使用道具 举报

地板
ID:891876 发表于 2026-1-22 19:10 | 只看该作者
lglg1 发表于 2026-1-22 12:31
void st7735_ShowSigneddNumM(uint16_t x, uint16_t y, int32_t num, uint8_t len, uint16_t fc, uint16_t  ...

感谢大佬帮助修改!已经可以正常显示负数了
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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