野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12661|回复: 1

新手,我想LCD_DisplayStringLine()函数显示传入的参数,总是出问题...

[复制链接]
发表于 2016-12-2 09:56:47 | 显示全部楼层 |阅读模式
【code】
  uint8_t *ptr;
  ptr = "  speed:                   ";
  LCD_DisplayStringLine(Line0,ptr,Green,Blue2);//行数 数据 字体颜色 背景色



/****************************************************************************
* 名    称:ili9320_DisplayStringLine
* 功    能:显示最多40个字符一行在LCD上
* 入口参数:Line 行数 *ptr指向字符串的指针 charColor字符颜色 bkColor背景颜色
* 出口参数:无
* 说    明:
* 调用方法:ili9320_DisplayStringLine(Line0,"I Love you...",White,Blue);  
****************************************************************************/
void LCD_DisplayStringLine(u8 Line, u8 *ptr, u16 charColor, u16 bkColor)
{
  u32 i = 0;
  u16 refcolumn = 0;

  /* Send the string character by character on lCD */
  while ((*ptr != 0) & (i < 40))
  {
    /* Display one character on LCD */
//    LCD_PutChar(refcolumn, Line, *ptr, charColor, bkColor);   //竖着
     //LCD_PutChar(Line,refcolumn, *ptr, charColor, bkColor);   //横着
     LCD_PutChar(Line,refcolumn, *ptr, charColor, bkColor);
    /* Decrement the column position by 16 */
    refcolumn += 16;
    /* Point on the next character */
    ptr++;
    /* Increment the character counter */
    i++;
  }
}
/****************************************************************************
* 名    称:void ili9320_PutChar(u16 x,u16 y,u8 c,u16 charColor,u16 bkColor)
* 功    能:在指定座标显示一个16x24点阵的ascii字符
* 入口参数:x          列座标
*           y          行座标
*           charColor  字符的颜色
*           bkColor    字符背景颜色
* 出口参数:无
* 说    明:显示范围限定为可显示的ascii码
* 调用方法:ili9320_PutChar(10,10,'a',0x0000,0xffff);
****************************************************************************/

void LCD_PutChar(u16 x,u16 y,u8 c,u16 charColor,u16 bkColor)
{
  u16 i=0;
  u16 j=0;

  u16 tmp_char=0;

  for (i=0;i<24;i++)
  {
    tmp_char=ASCII_Table[((c-0x20)*24)+i];         //减去32的偏移,是因为字符表从空格开始的,参考字符表那的注释
    for (j=0;j<16;j++)
    {
//      if ( (tmp_char >> 15-j) & 0x01 == 0x01)        按照上面的显示,字符是倒过来的,到这里改过来就行了
        if ( (tmp_char >> j) & 0x01 == 0x01)
      {
        LCD_SetPoint(x+i,y+j,charColor); // 字符颜色
      }
      else
      {
        LCD_SetPoint(x+i,y+j,bkColor); // 背景颜色
      }
    }
  }
}



【/code】
回复

使用道具 举报

发表于 2016-12-2 11:49:35 | 显示全部楼层
帮顶                  
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 13:19 , Processed in 0.030273 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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