福建百益建设集团有限公司网站,购物形式网站制作,海外引流推广平台,自己制作app软件改显示颜色为红色#xff1a;程 序中定义了这几种颜色可选#xff1a;*****************看一下这个函数是怎样把csdn.net这几个字符串显示到LCD上的。LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12,CSDN.NET!);看一下这个函数的原型#xff1a…改显示颜色为红色程 序中定义了这几种颜色可选*****************看一下这个函数是怎样把csdn.net这几个字符串显示到LCD上的。LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12,CSDN.NET!);看一下这个函数的原型//显示字符串//x,y:起点坐标//width,height:区域大小//size:字体大小//*p:字符串起始地址void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p){u8 x0x;widthx;heighty;while((*p~)(*p ))//判断是不是非法字符!{if(xwidth){xx0;ysize;}if(yheight)break;//退出LCD_ShowChar(x,y,*p,size,0);xsize/2;p; //显示完字符串中一个字符后显示字符串的下一个字符}}它调用了 LCD_ShowChar(x,y,*p,size,0);这个函数来对字串符串里的一个字符进行显示。而这个显示一个字符的函数的原型是//在指定位置显示一个字符//x,y:起始坐标//num:要显示的字符: ---~//size:字体大小 12/16/24//mode:叠加方式(1)还是非叠加方式(0)void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode){u8 temp,t1,t;u16 y0y;u8 csize(size/8((size%8)?1:0))*(size/2); //得到字体一个字符对应点阵集所占的字节数numnum- ;//得到偏移后的值ASCII字库是从空格开始取模所以- 就是对应字符的字库比如从字符C的ASCII码的值对应到字库中正好是这个字符字阵的位置for(t0;tcsize;t){if(size12)tempascii_1206[num][t]; //调用1206字体else if(size16)tempascii_1608[num][t]; //调用1608字体else if(size24)tempascii_2412[num][t]; //调用2412字体else return; //没有的字库for(t10;t18;t1){if(temp0x80)LCD_DrawFRONT_COLOR(x,y,FRONT_COLOR);else if(mode0)LCD_DrawFRONT_COLOR(x,y,BACK_COLOR);temp1;y;if(ytftlcd_data.height)return; //超区域了if((y-y0)size){yy0;x;if(xtftlcd_data.width)return; //超区域了break;}}}}里面调用了LCD_DrawFRONT_COLOR(x,y,FRONT_COLOR);也就是用这个函数把字符对应的点阵的每一个点显示到LCD上。这个函数的原型是//快速画点//x,y:坐标//color:颜色void LCD_DrawFRONT_COLOR(u16 x,u16 y,u16 color){LCD_Set_Window(x, y, x, y); //设定要画的点的位置LCD_WriteData_Color(color); //按照得到字符点阵的把点显示出来}它里面的这两个函数分别如下这里就到了操作STM32与LCD的接口线给LCD写数据的层面了。//设置窗口,并自动设置画点坐标到窗口左上角(sx,sy).//sx,sy:窗口起始坐标(左上角)//width,height:窗口宽度和高度,必须大于0!!//窗体大小:width*height.void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height){#ifdef TFTLCD_HX8357DLCD_WriteCmd(0x2A);LCD_WriteData(sx8);LCD_WriteData(sx0XFF);LCD_WriteData(width8);LCD_WriteData(width0XFF);LCD_WriteCmd(0x2b);LCD_WriteData(sy8);LCD_WriteData(sy0XFF);LCD_WriteData(height8);LCD_WriteData(height0XFF);LCD_WriteCmd(0x2c);#endifvoid LCD_WriteData_Color(u16 color){#ifdef TFTLCD_HX8357DTFTLCD-LCD_DATAcolor;#endif#ifdef TFTLCD_HX8357DNTFTLCD-LCD_DATAcolor8;TFTLCD-LCD_DATAcolor0xff;#endif#ifdef TFTLCD_R61509VTFTLCD-LCD_DATAcolor;#endif