野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24403|回复: 6

用超声波模块那个函数,怎么将数据在3.2寸LCD屏上显示?

[复制链接]
发表于 2013-5-23 09:59:02 | 显示全部楼层 |阅读模式
大神们,最近在库函数中用了超声波模块那个函数,原先自带可以串口打印到PC端,现在我想将测的结果在自带的LCD屏上显示出来,研究了半天发现LCD显示这个库函数是显示常量的
* 函数名:LCD_Str_O_P
* 描述  :在指定坐标处悬浮显示8*16大小的字符串
* 输入  : -x   显示位置横向坐标 0 ~ 319
           -y   显示位置纵向坐标 0 ~ 239
*                    -str 字符串首址
*                    -Color字符串颜色
* 输出  :无
* 举例  :        LCD_Str_O_P(0, 0, "Runing", 0);
                    LCD_Str_O_P(150, 100, "Runing", 0);
                   LCD_Str_O_P(320-16, 239-8*6, "Runing", 0);
* 注意  :字符串显示方向为纵向 已测试
******************************************************************/   
void LCD_Str_O_P(u16 x, u16 y,const u8 *str,u16 Color)       
{
        Set_direction(1);
    while(*str != '\0')
    {
        if(y > (240-8))
        {        /* 换行*/
            y = 0;
            x -= 16;
        }
                          if(x >(320-16))
        {        /*重归起点*/
            y = x = 0;
        }        
                                LCD_Char_O_P(x,y,*str,Color);               
        str ++ ;
        y += 8 ;
    }

}

对这个超声波那边的变量        printf("\r\ndistance:%d%d cm\r\n",UltrasonicWave_Distance/256,UltrasonicWave_Distance%256);怎么改呢?折腾好几天了,总是不可以动态显示出那个变量来。大神们,指导下啊!
回复

使用道具 举报

发表于 2013-5-23 11:12:57 | 显示全部楼层
显示前,应该先清一下背景。
不然 上一次显示 800 ,这次显示 4的时候,看到的结果就是 400
回复 支持 反对

使用道具 举报

发表于 2013-5-23 11:13:48 | 显示全部楼层
  1. void LCD_Num_6x12_O(u16 x,u16 y,  u32 num, u16 Color);                 /*6*12 */
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-23 13:32:40 | 显示全部楼层

/******************************************************
* 函数名:LCD_Num_6x12_O
* 描述  :在指定坐标处悬浮显示6*12大小的数字
* 输入  : -x   显示位置横向坐标 0 ~ 319
           -y   显示位置纵向坐标 0 ~ 239
                   -num  需要显示的数字
                   -Color 数字颜色
* 输出  :无
* 举例  :        LCD_Num_6x12_O(200, 100, 65535, BLACK);
                    LCD_Num_6x12_O(320-5*6, 240-12, 65535, BLACK);
                        LCD_Num_6x12_O(0, 0, 65535, BLACK);
* 注意  :        显示方向为横向 已测试
*********************************************************/   
void LCD_Num_6x12_O(u16 x,u16 y,u32 num, u16 Color)          
{      
    u32 res=num;             
    u8 t=0;

                Set_direction(0);  
          if( num == 0 )
                {
                LCD_Char_6x12_O(x, y, '0',Color);
                                        return;
                }       
           while( res )  /*得到数字长度t*/
    {
        res/=10;
        t++;
    }

                while(num)
                {
                         LCD_Char_6x12_O(x+(6*(t--)-6), y, (num%10)+'0',Color);/*先显示低位在显示高位*/
                         num /= 10 ;
                }                             
} 这里悬浮显示怎么理解呢?
回复 支持 反对

使用道具 举报

发表于 2013-5-29 21:26:49 | 显示全部楼层
风落小鱼 发表于 2013-5-23 11:12
显示前,应该先清一下背景。
不然 上一次显示 800 ,这次显示 4的时候,看到的结果就是 400

怎样清一下背景??调用那一条语句??求。。
回复 支持 反对

使用道具 举报

发表于 2013-5-29 21:57:28 | 显示全部楼层
linyeazhe 发表于 2013-5-29 21:26
怎样清一下背景??调用那一条语句??求。。

有个画矩形的函数接口的
回复 支持 反对

使用道具 举报

发表于 2013-5-30 17:43:06 | 显示全部楼层
花矩形的?
void LCD_Rectangle(u16 x,u16 y,u16 len,u16 wid,u16 rgb565)
{                    
   u32 n, temp;
         Set_direction(0);                                                         /*设定方向为横向*/
   LCD_open_windows(x,y,len,wid);   
   temp = (u32)len*wid;   
   for(n=0; n<temp; n++)
         {
        LCD_WR_Data( rgb565 );
         }
         
          
}这里面有什么东西啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-9 13:50 , Processed in 0.030416 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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