本帖最后由 wenyangzeng 于 2021-11-8 15:08 编辑
免费测评-拓普微智能显示模块(7) 实际应用
作为实际应用的评测,使用STM8S105S4-PKT来驱动这片智能屏。
安排如下:
1、STM8S105S4-PKT的RS232串口连接到智能屏的RS232串口。
2、STM8S105S4-PKT的ADC3原本连接一只电位器做ADC转换,就利用ADC3的转换结果数据驱动智能屏的一个进度条的显示。
3、智能屏设置2个不同背景页面,第一页面安排一个密码触摸屏,它这个密码输入控件做得很贴心,输入的密码在窗口显示的是“*”号,这里假设输入6位密码123456,当按下“OK”键后,智能屏就自动从串口传送了密码字串:
AA 77 00 00 00 80 30 31 32 33 34 35 36 CC 33 C3 3C
4、STM8单片机的串口接收到返回的密码信息,判断如果密码正确,则发送第二页面显示命令:
AA 70 00 01 CC 33 C3 3C
接着STM8进行ADC转换,并将转换结果返回智能屏,驱动进度条的显示:
AA 3D 00 08 00 00 00 63 CC 33 C3 3C
SGTools的页面设置过程不再重复,请参考楼主前几贴。
密码键盘配置
进度条配置
部分代码
unsigned char Pass_OK[8]={0xAA,0x70,0x00,0x01,0xCC,0x33,0xC3,0x3C};
unsigned char ADC_dat[12]={0xAA,0x3D,0x00,0x08,0X00,0X00,0X00,0X50,0xCC,0x33,0xC3,0x3C};
void Send_OK(void)
{
for(Tx_Count=0;Tx_Count<8;Tx_Count++)
{
while (!(UART2_SR & 0x80));
UART2_DR=Pass_OK[Tx_Count];
}
}
void Send_ADC(void)
{
for(Tx_Count=0;Tx_Count<12;Tx_Count++)
{
while (!(UART2_SR & 0x80));
UART2_DR=ADC_dat[Tx_Count];
}
}
#pragma vector = UART2_R_RXNE_vector
__interrupt void UART2_R_RXNE_IRQHandler(void)
{
if(UART2_SR_RXNE==1)
{
Rx_buffers[Rx_Count++]=UART2_DR;
}
else
if(UART2_SR_IDLE==1)
{
i=UART2_SR;
i=UART2_DR;
if((Rx_buffers[1]==0x77)&&(Rx_buffers[12]==0x00))
{
if((Rx_buffers[6]==0x31)&&(Rx_buffers[7]==0x32)
&&(Rx_buffers[8]==0x33)&&(Rx_buffers[9]==0x34)
&&(Rx_buffers[10]==0x35)&&(Rx_buffers[11]==0x36))
Send_OK();
Count=1;
}
Rx_Count=0;
}
}
视频
从评测过程体会到:这个智能屏编程操作简单,节省了图形编程的很大部分工作量。对硬件要求很低,只要8位单片机比如STM8S,就可以轻松驱动1024×600的TFT屏得到非常满意的显示效果。
本次评测结束,谢谢EEWORLD,谢谢TOPWAY。
|