TFTLCD例程中填充方式显示字符函数缺损的问题

2019-07-21 00:34发布

原子老大,stm32不完全手册中,TFTLCD显示实验部分写明使用的字符显示函数是通过开辟液晶gram区域,但是在光盘中拷出来的TFT显示的例程中已经不采用开辟gram区域的方法,而是采用逐点写地址再画点的方法,包括在论坛中下载的ALIENTEK MiniSTM32开发板例程_20120719.rar文件里也是一样,我想是原子老大疏忽了,更新程序的时候忘了保留区域填充的函数,请老大重新上传该例程,以便与手册教程对上号,谢谢!以下是光盘里的例程片段
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) {   #if USE_HORIZONTAL==1 #define MAX_CHAR_POSX 312 #define MAX_CHAR_POSY 232  #else      #define MAX_CHAR_POSX 232 #define MAX_CHAR_POSY 312 #endif      u8 temp;     u8 pos,t; u16 x0=x; u16 colortemp=POINT_COLOR;           if(x>MAX_CHAR_POSX||y>MAX_CHAR_POSY)return;     //设置窗口    num=num-' ';//得到偏移后的值 if(!mode) //非叠加方式 { for(pos=0;pos<size;pos++) { if(size==12)temp=asc2_1206[num][pos];//调用1206字体 else temp=asc2_1608[num][pos]; //调用1608字体 for(t=0;t<size/2;t++)    {                         if(temp&0x01)POINT_COLOR=colortemp; else POINT_COLOR=BACK_COLOR; LCD_DrawPoint(x,y); temp>>=1;  x++;    } x=x0; y++; } }else//叠加方式 { for(pos=0;pos<size;pos++) { if(size==12)temp=asc2_1206[num][pos];//调用1206字体 else temp=asc2_1608[num][pos]; //调用1608字体 for(t=0;t<size/2;t++)    {                         if(temp&0x01)LCD_DrawPoint(x+t,y+pos);//画一个点             temp>>=1;     } } } POINT_COLOR=colortemp;         }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 04:58
回复【楼主位】EDA3rd:
---------------------------------
填充方式有限制.
比如我们现在的LCD驱动有很多型号,93XX,1289,45XX,15XX等等.这些在开窗的时候,不尽相同,处理起来麻烦,为了简化操作,我们改为了画点,这样只需要修改画点函数,做到画点兼容即可实现所有驱动IC通吃...从而提高代码兼容性.
EDA3rd
2楼-- · 2019-07-21 09:19
回复【2楼】正点原子:
---------------------------------
嗯,理解
男男女女
3楼-- · 2019-07-21 10:03
正点原子 发表于 2012-8-9 23:17
回复【楼主位】EDA3rd:
---------------------------------
填充方式有限制.
比如我们现在的LCD驱动有很多 ...

原子哥,我显示字符串想显示个48*24的数字,显示出来的数字感觉被拉长了,是怎么回事呀

一周热门 更多>