完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例程下载:
资料包括程序、相关说明资料以及软件使用截图 百度云链接:http://pan.baidu.com/s/1i574oPv 密码:r3s3 (硬石YS-F1Pro开发板HAL库例程持续更新2. 软件设计之高级裸机例程(HAL库版本)YSF1_HAL-110. LCD-显示中文(透明效果)) /** ****************************************************************************** * 硬石YS-F1Pro开发板例程功能说明 * * 例程名称: YSF1_HAL-110. LCD-显示中文(透明效果) * ****************************************************************************** * 说明: * 本例程配套硬石STM32开发板YS-F1Pro使用。 * * 淘宝: * 论坛:硬石电子社区 * 版权归硬石嵌入式开发团队所有,请勿商用。 ****************************************************************************** */ |
|
相关推荐
|
|
好资料,谢谢转载。
|
|
|
|
|
|
【1】例程简介
FSMC:可变静态存储控制器,是STM32系列采用的一种新型的存储器扩展技术。一般可以用FSMC 接口与液晶驱动IC连接,实现数据交换。YS-F1Pro预留16bit的FSMC液晶接口,我们同时提供了 3.5寸TFT液晶模组供选购,该模组的液晶驱动IC型号为ILI9488。 本例程实现液晶模组显示24bit的bmp格式图片。 【2】跳线帽情况 ******* 为保证例程正常运行,必须插入以下跳线帽 ********** 丝印编号 IO端口 目标功能引脚 出厂默认设置 JP1 PA10 TXD(CH340G) 已接入 JP2 PA9 RXD(CH340G) 已接入 【3】操作及现象 将例程目录下的图片文件拷贝到SD卡中,并把SD卡插入到开发板上,把3.5寸TFT液晶模组插入开发 板中间液晶接口上,使用开发板配套的MINI USB线连接到开发板标示“调试串口”字样的MIMI USB 接口(需要安装驱动),在电脑端打开串口调试助手工具,设置参数为115200 8-N-1。下载完程序 之后,在串口调试助手窗口可接收到液晶模组ID信息,同时液晶屏幕亮起来,显示图片和一些文字, 部分文字是通透效果的。 |
|
|
|
|
|
bsp_lcd.c部分函数 /** * 函数功能: 在 LCD 显示器上显示一个英文字符 * 输入参数: usX:在特定扫描方向下字符的起始X坐标 * usY :在特定扫描方向下该点的起始Y坐标 * cChar :要显示的英文字符 * usColor_Background :选择英文字符的背景色 * usColor_Foreground :选择英文字符的前景色 * font:字体选择 * 可选值:FONT_16 :16号字体 * FONT_24 :24号字体 * 返 回 值: 无 * 说 明:该函数必须与ascii.h内容对应使用 */ void LCD_DispChar_EN_Transparent(uint16_t usX,uint16_t usY,const char cChar, uint16_t usColor_Background,uint16_t usColor_Foreground, uint8_t transparent,USB_FONT_Typdef font) { uint8_t ucTemp, ucRelativePositon, ucPage, ucColumn; uint16_t i,j; /* 检查输入参数是否合法 */ assert_param(IS_FONT(font)); ucRelativePositon = cChar - ' '; if(font==USB_FONT_16) { for(j=0;j<16;++j) { for(i=0;i<8;++i) { LCD_SetCursor(usX+i,usY+j); bk_color[8*j+i]=LCD_Read_PixelData(); } } LCD_OpenWindow(usX,usY,8,16); LCD_WRITE_CMD(0x2C); for(i=0,ucPage=0;ucPage<16;ucPage++) { ucTemp=ucAscii_1608[ucRelativePositon][ucPage]; for(ucColumn=0;ucColumn<8;ucColumn++) { if(ucTemp&0x01) LCD_WRITE_DATA(usColor_Foreground); else if(transparent) LCD_WRITE_DATA(bk_color[i]); else LCD_WRITE_DATA(usColor_Background); ++i; ucTemp >>= 1; } } } else { for(j=0;j<24;++j) { for(i=0;i<12;++i) { LCD_SetCursor(usX+i,usY+j); bk_color[12*j+i]=LCD_Read_PixelData(); } } LCD_OpenWindow(usX,usY,12,24); LCD_WRITE_CMD(0x2C); for(i=0,ucPage=0;ucPage<48;ucPage++) { ucTemp=ucAscii_2412[ucRelativePositon][ucPage]; for(ucColumn=0;ucColumn<8;ucColumn++) { if(ucTemp&0x01) LCD_WRITE_DATA(usColor_Foreground); else if(transparent) LCD_WRITE_DATA(bk_color[i]); else LCD_WRITE_DATA(usColor_Background); ++i; ucTemp >>= 1; } ucPage++; ucTemp=ucAscii_2412[ucRelativePositon][ucPage]; /* 只显示前面4个位,与前面8位总共12位 */ for(ucColumn=0;ucColumn<4;ucColumn++) { if(ucTemp&0x01) LCD_WRITE_DATA(usColor_Foreground); else if(transparent) LCD_WRITE_DATA(bk_color[i]); else LCD_WRITE_DATA(usColor_Background); ++i; ucTemp >>= 1; } } } } /** * 函数功能: 在 LCD 显示器上显示英文字符串 * 输入参数: usX:在特定扫描方向下字符的起始X坐标 * usY :在特定扫描方向下该点的起始Y坐标 * pStr :要显示的英文字符串的首地址 * usColor_Background :选择英文字符的背景色 * usColor_Foreground :选择英文字符的前景色 * font:字体选择 * 可选值:FONT_16 :16号字体 * FONT_24 :24号字体 * 返 回 值: 无 * 说 明:该函数必须与ascii.h内容对应使用 */ void LCD_DispString_EN_Transparent(uint16_t usX,uint16_t usY,const char * pstr, uint16_t usColor_Background, uint16_t usColor_Foreground, uint8_t transparent,USB_FONT_Typdef font) { /* 检查输入参数是否合法 */ assert_param(IS_FONT(font)); while(*pstr != ' |