[问题讨论] 求助大佬们,文字,字符串,不显示,但是代码运行无错误,可以帮我看一下吗

csfc   2024-5-16 11:26 楼主

使用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;//下一个汉字偏移	    
        }						 
    }   
}

主函数添加的部分:

捕获.PNG

结果:

微信图片_20240516101451.jpg

求大佬帮忙看看,这问题是出在那一块了,感谢感谢。

回复评论 (7)

有可能接口选择错误了,文字那块的软件接口 

点赞  2024-5-16 12:06
引用: qzc飘曳 发表于 2024-5-16 12:06 有可能接口选择错误了,文字那块的软件接口 

意思就是当前的代码逻辑没有问题了,对伐,大佬?

这个可以单步调试一下吧

点赞  2024-5-16 12:17

字库代码加上去了吗? 下面函数应该都依赖字库的,有的是字库自己转换成的字库数组。可以追踪一下。

LCD_ShowChar(x,y,*str,24,mode);
GUI_DrawFont16(x,y,str,mode);
本帖最后由 damiaa 于 2024-5-16 12:59 编辑
点赞  2024-5-16 12:33
引用: damiaa 发表于 2024-5-16 12:33 字库代码加上去了吗? 下面函数应该都依赖字库的,有的是字库自己转换成的字库数组。可以追踪一下。 L ...

加上了,大佬,但是依旧还是没有显示

点赞  2024-5-17 11:04
引用: csfc 发表于 2024-5-17 11:04 加上了,大佬,但是依旧还是没有显示

你 可以调试一下,看看函数里面怎么点亮一个点。 细心点一个点都可以看到的。

点赞  2024-5-18 11:32
引用: damiaa 发表于 2024-5-18 11:32 你 可以调试一下,看看函数里面怎么点亮一个点。 细心点一个点都可以看到的。

好的,大佬,我试试。

点赞  2024-5-20 08:03

8楼 ACK 

硬件连接问题

检查TFT显示屏与GD32F单片机之间的连接是否正确,包括数据线、电源线等。

确保所有连接都牢固可靠,没有松动或断裂的情况。

如果使用的是SPI或I2C等接口,需要确保复用关系正确,如AF5等。

驱动问题

检查GD32F单片机的驱动程序是否正确编写,并且与TFT显示屏的型号和规格相匹配。

确保驱动代码中包含了正确的初始化设置,如分辨率、颜色深度、刷新率等。

如果驱动代码是从其他地方获取的,请确保代码没有错误或遗漏。

电源问题

检查TFT显示屏的电源供应是否正常,包括电源电压和电流是否满足要求。

如果使用的是外部电源,请确保电源的稳定性和质量。

显示屏问题

检查TFT显示屏本身是否有问题,如损坏、老化等。

尝试将显示屏连接到其他设备或单片机上,以验证显示屏是否正常工作。

伽马调节和校正问题

TFT-LCD显示屏的驱动需要进行伽马调节和校正,以确保显示效果的正确性。

如果伽马调节或校正不正确,可能会导致显示屏无法正常显示。

查阅相关文档或咨询专业人士,了解如何正确进行伽马调节和校正。

软件问题

检查单片机的软件程序是否存在问题,如逻辑错误、内存泄漏等。

使用调试工具对程序进行调试,查看是否有异常或错误发生。

尝试简化程序或逐步排查问题,以确定问题的根源。

看样子这个是接线问题或者是电路的问题导致的

点赞  2024-5-23 10:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复