关于STM32的TFTLCD使用中突然出现白屏;以及将代码烧录进入单片机后,在PC端打开串口调试助手时,LCD会突然的黑屏

  问题描述:我的情况是STM32搭载了一个小直流电机,直流电机进行PWM输出,在电机达到最高转速时的方向正反转的过程里,TFTLCD突然白屏,不再显示任何字符信息。

这是部分控制电机转速和正反转的代码

		else if(t == KEY1_PRES)
		{
			Speed -= 32;
			if (Speed >= 0)
			{
				delay_ms(10);
				GPIO_SetBits(GPIOC, GPIO_Pin_2);
				GPIO_ResetBits(GPIOC, GPIO_Pin_3);
				TIM_SetCompare1(TIM3,Speed);
				POINT_COLOR = RED ;
				LCD_ShowString(20,270,200,24,24,"          .");
				LCD_ShowString(20,270,200,24,24,"+          ");
				LCD_ShowNum(60,270,Speed,3,24);
			}				
			else
			{
				if(Speed >= -96)
				{
					delay_ms(10);
					GPIO_SetBits(GPIOC, GPIO_Pin_3);
					GPIO_ResetBits(GPIOC, GPIO_Pin_2);
					TIM_SetCompare1(TIM3,-Speed);
					LCD_ShowString(20,270,200,24,24,"          .");	
					POINT_COLOR = RED ;
					LCD_ShowString(20,270,200,24,24,"-          ");
					LCD_ShowNum(60,270,-Speed,3,24);
				}
				else
				{
					Speed = 96 ;
					delay_ms(10);
					GPIO_SetBits(GPIOC, GPIO_Pin_2);
					GPIO_ResetBits(GPIOC, GPIO_Pin_3);
					TIM_SetCompare1(TIM3,Speed);
					POINT_COLOR = RED ;
					LCD_ShowString(20,270,200,24,24,"          .");
					LCD_ShowString(20,270,200,24,24,"+          ");
					LCD_ShowNum(60,270,Speed,3,24);					
				}
				
			}			
		
		}
		
		else if(t == WKUP_PRES)
		{
			if(Speed >= 0)
			{
				Speed = -Speed ;
				delay_ms(10);
				PC2 = !PC2 ;
				PC3 = !PC3 ;
				POINT_COLOR = RED ;
				LCD_ShowString(20,270,200,24,24,"          .");
				LCD_ShowString(20,270,200,24,24,"-          ");
				LCD_ShowNum(60,270,-Speed,3,24);
				
			}
			else
			{
				Speed = -Speed ;
				delay_ms(10);
				PC2 = !PC2 ;
				PC3 = !PC3 ;
				POINT_COLOR = RED ;
				LCD_ShowString(20,270,200,24,24,"          .");
				LCD_ShowString(20,270,200,24,24,"+          ");
				LCD_ShowNum(60,270,Speed,3,24);
			}			
		}

问题发现:在电机转速未达到最高速时,用手轻轻阻止电机的转动,发现TFTLCD屏幕明显变暗  

问题解决:在电机的最高转速下实现正反转,两个IO口迅速实现电流的大幅度改变,这一点导致的LCD白屏,设置IO口的输出电流不能达到最高。

目前测得在96/100时的突然变化LCD也可以正常显示,但在99/100是不可以的,关于这个可以正常实现TFTLCD的最大值是97/100、98/100,这个可以由你来测得!=-=

其实最大问题就是:供电不足!!!

如果你身边有12V直流电池,可以用其供电,效果相当好!

最后,这里讲一个我现在也不是很明白的BUG,希望得到大佬的解答!

有时候将代码烧录进入单片机后,在PC端打开串口调试助手时,LCD会突然的黑屏==

再次烧录后就可以正常显示了。。

谢谢你的观看!下篇博客再见!拜~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Year_ww

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值