微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > stm32实现printf重定向到LCD显示屏

stm32实现printf重定向到LCD显示屏

时间:11-11 来源:互联网 点击:

; //下一次是第一个字节

if(x > X_MAX - 16) //判断是否需要换行

{

x = 0; //换行操作...

y += 18; //...

}

if(y > Y_MAX - 16) //判断是否越界

{

return ch; //越界退出

}

File_Status = f_open(&File, CHINESE_FONT, FA_OPEN_EXISTING | FA_READ);

if(Check_FileStatus(File_Status)) //判断文件操作状态

{

Offset = Chinese_Offset(tmp);//根据中文字库字模提取软件计算出汉字偏移位置

f_lseek(&File, Offset); //文件指针移至偏移位置

}

if(Check_FileStatus(File_Status)) //判断文件操作状态

{

File_Status = f_read(&File, Read_Font, 32, &Read_Count);

}

if(Check_FileStatus(File_Status)) //判断文件操作状态

{

LCD_Chinese_One(x, y, Read_Font, WHITE);//调用中文打印函数打印汉字

x += 16; //液晶横坐标+16, 中文为16*16的

}

File_Status = f_close(&File); //关闭文件

}

}

else

{

if(x > X_MAX - 8) //判断是否需要换行

{

x = 0; //换行操作...

y += 18; //...

}

if(y > Y_MAX - 16) //判断是否越界

{

return ch; //越界退出

}

File_Status = f_open(&File, ASCII_FONT, FA_OPEN_EXISTING | FA_READ);

if(Check_FileStatus(File_Status)) //判断文件操作状态

{

Offset = ((uint8_t)(ch) - 0x20) < 4; //计算出Ascii偏移地址, 要先跳过Ascii控制字符

f_lseek(&File, Offset); //文件指针移至偏移位置

}

if(Check_FileStatus(File_Status))//判断文件操作状态

{

f_read(&File, Read_Font, 16, &Read_Count);//读取字模信息

}

if(Check_FileStatus(File_Status))//判断文件操作状态

{

LCD_Ascii_One(x, y, Read_Font, WHITE); //调用Ascii打印函数打印字符

x += 8;//Ascii像素为8*16, 横坐标+8

}

File_Status = f_close(&File); //关闭文件

}

return ch;

}

#endif //#ifdef STDOUT_LCD


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top