TFTLCD显示负数的讨论

2019-07-21 04:17发布

想让TFTLCD显示负数参考了之前的帖子http://www.openedv.com/thread-812-1-1.html,在测试的时候  定义了 一个数组float k[2]={123,-2};
然后主函数进行调用,现象是正数可以显示,负数就显示的是0000,不明白是为啥?请教一下大家
             调用函数 :     LCD_ShowxNum(84,180,k[1],4,16, 0X80);  //fu     -234
                                  LCD_ShowxNum(84,200,k[0],4,16, 0X80);//zheng  123

显示函数
void LCD_ShowxNum(u16 x,u16 y,s32 num,u8 len,u8 size,u8 mode)
{  

    u8 t,temp,fu=0;
    u8 enshow=0;
    if(num<0)
    {
        fu=1;
         num=-num;
    }
    if(fu)
    {
            LCD_ShowChar(x-(size/2),y,'-',size,0);
//            fu=0;
    }
    for(t=0;t<len;t++)
    {
        temp=(num/LCD_Pow(10,len-t-1))%10;
        if(enshow==0&&t<(len-1))
        {
            if(temp==0)
            {
                if(mode&0X80)LCD_ShowChar(x+(size/2)*t,y,'0',size,mode&0X01);  
                else LCD_ShowChar(x+(size/2)*t,y,' ',size,mode&0X01);  
                 continue;
            }else enshow=1;
              
        }
         LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,mode&0X01);
    }
}
然后主函数进行调用,现象是正数可以显示,负数就显示的是0000,不明白是为啥?请教一下大家
                        LCD_ShowxNum(84,180,k[1],4,16, 0X80);  //fu     -234
                        LCD_ShowxNum(84,200,k[0],4,16, 0X80);//zheng  123


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 09:27
无非就是在前面加个-号,真心简单的很。这个搞不出来,回去继续学习C语言吧
crysislove
2楼-- · 2019-07-21 14:54
 精彩回答 2  元偷偷看……
嘤嘤嘤
3楼-- · 2019-07-21 15:15
crysislove 发表于 2017-5-5 15:49
**** 作者被禁止或删除 内容自动屏蔽 ****

是这样的,我看了一下,是不是有一个显示字符串的函数可以直接使用呢,数字也是字符,负号也是字符,不需要使用显示数字这个函数
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p);               

一周热门 更多>