想让TFTLCD显示负数参考了之前的帖子
http://www.openedv.com/thread-812-1-1.html,在测试的时候 定义了 一个数组float k[2]={123,-2};
然后主函数进行调用,现象是正数可以显示,负数就显示的是0000,不明白是为啥?请教一下大家
![](data/attach/1907/f0d51gsdjvs3t7tcmwm5tdpyw92nrp6m.jpg)
调用函数 : 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
是这样的,我看了一下,是不是有一个显示字符串的函数可以直接使用呢,数字也是字符,负号也是字符,不需要使用显示数字这个函数
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p);
一周热门 更多>