stm32实现printf重定向到LCD显示屏
; //下一次是第一个字节
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
stm32printf重定向LCD显示 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)