今天搞到一块串口屏,真的是打开了一个新世界的大门。不禁感慨,这么好的东西,怎么现在才知道呢,悔了悔了。
一开始上手的时候一脸闷逼,这玩意怎么用。但是这块屏的资料很丰富,手把手教学,稍微掌握一点基础以后,就开始了开头的感慨。
真香。
串口控制,简单方便。
只需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;
}
}
其实通过字符串函数能够更好地处理,但是因为较为简单,就没采用(其实是懒)。