STM32串口屏应用

今天搞到一块串口屏,真的是打开了一个新世界的大门。不禁感慨,这么好的东西,怎么现在才知道呢,悔了悔了。
STM32串口屏应用_第1张图片
型号TJC4827T043_011。
一开始上手的时候一脸闷逼,这玩意怎么用。但是这块屏的资料很丰富,手把手教学,稍微掌握一点基础以后,就开始了开头的感慨。
真香。
串口控制,简单方便。
只需4线,相比lcd简直是吊打。
可以自己开发ui界面,而且软件是全中文的,贼友好。
可以将按键集成到屏幕中。
。。。。。。
可能还有其他很多作用,目前还没发现。
后续如果有新的感受,再更新。


之前只是初步的应用烧烧例程之类的,真正的应用肯定是要和设备进行通讯的。
STM32与串口屏通讯分为两个部分,一个是发送部分,一个是接收部分。
发送部分较为简单,只需要通过串口向串口屏发送符合串口屏语法要求的指令就可以了。

u8 end[] = {0xff, 0xff, 0xff};

void U2LCD_Send_End(void)
{
	USART2_SendString(end);
}
void ulcd_send(void){
	//
	USART2_SendString((u8*)"page0.t1.txt=\"key2\"");
	U2LCD_Send_End();
	//
}

接收就比较麻烦了,要判断串口数据进行存储和解析。本来我想通过定时器的定时来判断数据包接收完成,后来程序没有调出来。最后采用正点原子的接收方法。
串口接收部分不贴出来了,仅展示串口解析部分。

void USART2_Rece_Cope(void)	
{
	u8 len;
	if(USART_RX_STA&0x8000)
	{		
		//USART2_SendString(USART_RX_BUF);
		len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
		if(USART_RX_BUF[0] == 'k')
			if( USART_RX_BUF[1] == 'e')
				if( USART_RX_BUF[2] == 'y')
				{
					if( USART_RX_BUF[3] == '2')
					{
						USART2_SendString((u8*)"page0.t1.txt=\"key2\"");
						U2LCD_Send_End();
					}
					else if( USART_RX_BUF[3] == '1')
					{
						USART2_SendString((u8*)"page0.t1.txt=\"key1\"");
						U2LCD_Send_End();
					}
				}					
		USART_RX_STA=0;
	}
}

其实通过字符串函数能够更好地处理,但是因为较为简单,就没采用(其实是懒)。

你可能感兴趣的:(STM32)