使用GD32F303CCT6这块板子,参照GD32的2.1的例程,进行修改,修改后添加图片显示代码和文字显示代码,图片显示正常,但文字在液晶上不显示,程序运行也未报错。
下面是添加的代码
//显示汉字或者字符串
void Show_Str(uint16_t x, uint16_t y,uint8_t *str,uint8_t size,uint8_t mode)
{
uint16_t x0=x;
uint8_t bHz=0; //字符或者中文
while(*str!=0)//数据未结束
{
if(!bHz)
{
if(x>(lcddev.width-size/2)||y>(lcddev.height-size))
return;
if(*str>0x80)bHz=1;//中文
else //字符
{
if(*str==0x0D)//换行符号
{
y+=size;
x=x0;
str++;
}
else
{
if(size>=24)//字库中没有集成12X24 16X32的英文字体,用8X16代替
{
LCD_ShowChar(x,y,*str,24,mode);
x+=12; //字符,为全字的一半
}
else
{
LCD_ShowChar(x,y,*str,size,mode);
x+=size/2; //字符,为全字的一半
}
}
str++;
}
}
else//中文
{
if(x>(lcddev.width-size)||y>(lcddev.height-size))
return;
bHz=0;//有汉字库
if(size==16)
{
GUI_DrawFont16(x,y,str,mode);
}
str+=2;
x+=size;//下一个汉字偏移
}
}
}
主函数添加的部分:
结果:
求大佬帮忙看看,这问题是出在那一块了,感谢感谢。
字库代码加上去了吗? 下面函数应该都依赖字库的,有的是字库自己转换成的字库数组。可以追踪一下。
LCD_ShowChar(x,y,*str,24,mode);
GUI_DrawFont16(x,y,str,mode);
本帖最后由 damiaa 于 2024-5-16 12:59 编辑
引用: damiaa 发表于 2024-5-16 12:33 字库代码加上去了吗? 下面函数应该都依赖字库的,有的是字库自己转换成的字库数组。可以追踪一下。 L ...
加上了,大佬,但是依旧还是没有显示
引用: csfc 发表于 2024-5-17 11:04 加上了,大佬,但是依旧还是没有显示
你 可以调试一下,看看函数里面怎么点亮一个点。 细心点一个点都可以看到的。
引用: damiaa 发表于 2024-5-18 11:32 你 可以调试一下,看看函数里面怎么点亮一个点。 细心点一个点都可以看到的。
好的,大佬,我试试。
硬件连接问题:
检查TFT显示屏与GD32F单片机之间的连接是否正确,包括数据线、电源线等。
确保所有连接都牢固可靠,没有松动或断裂的情况。
如果使用的是SPI或I2C等接口,需要确保复用关系正确,如AF5等。
驱动问题:
检查GD32F单片机的驱动程序是否正确编写,并且与TFT显示屏的型号和规格相匹配。
确保驱动代码中包含了正确的初始化设置,如分辨率、颜色深度、刷新率等。
如果驱动代码是从其他地方获取的,请确保代码没有错误或遗漏。
电源问题:
检查TFT显示屏的电源供应是否正常,包括电源电压和电流是否满足要求。
如果使用的是外部电源,请确保电源的稳定性和质量。
显示屏问题:
检查TFT显示屏本身是否有问题,如损坏、老化等。
尝试将显示屏连接到其他设备或单片机上,以验证显示屏是否正常工作。
伽马调节和校正问题:
TFT-LCD显示屏的驱动需要进行伽马调节和校正,以确保显示效果的正确性。
如果伽马调节或校正不正确,可能会导致显示屏无法正常显示。
查阅相关文档或咨询专业人士,了解如何正确进行伽马调节和校正。
软件问题:
检查单片机的软件程序是否存在问题,如逻辑错误、内存泄漏等。
使用调试工具对程序进行调试,查看是否有异常或错误发生。
尝试简化程序或逐步排查问题,以确定问题的根源。
看样子这个是接线问题或者是电路的问题导致的